Professional Documents
Culture Documents
C#C#
PANDA
Suzuki Reno
Toyota Camry
Honda Acura
XX 4C 4546
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11 this
5.12
5.1
5.1
()
C#
5.1
5.2
class
{
}
class
5.2
C#
5.2
5-1:
class Cat
//
{
public int Age;
//
public int Weight; //
public void Meow() //
{
Console.WriteLine ("Meow...");
}
}
public
5.2
publicinternalprotected internalprotected
private
public
private
internal
protected internal
protected
5.2
new ()
new ()
5.2
.
5.2
Cat cat;
cat.Age=2;
cat=new Cat();
cat.Weight=5;
//
5.2
new Cat();
new Cat().Meow();
5-1
using System;
namespace P5
{
class Cat
{
public int Age;
public int Weight;
public void Meow()
{
Console.WriteLine("Meow...");
Console.WriteLine("{0}",Age);
}
}
5-1
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat();
cat.Age = 2;
cat.Weight = 5;
cat.Meow();
Console.WriteLine("");
new Cat().Age = 3;
new Cat().Meow();
}
}
}
using System;
class Student
{
public string Name;
public string Sex;
public int Age;
public void Outout()
{
Console.WriteLine("{0}",Name);
Console.WriteLine("{0}", Sex);
Console.WriteLine("{0}", Age);
}
}
class Program
{
static void Main(string[] args)
{
Student stu1 = new Student ();
stu1.Name = "";
stu1.Sex ="";
stu1.Age =21;
Console.WriteLine("");
stu1.Outout();
}
}
class Program
{
static void Main(string[] args)
{
Student stu1 = new Student ();
stu1.Name = "";
stu1.Sex ="";
stu1.Age =21;
Console.WriteLine("stu1?");
stu1.Outout();
Student stu2 = new Student();
stu2.Name = "";
stu2.Sex = "";
stu2.Age = 18;
Console.WriteLine("stu2?");
stu2.Outout();
}
}
5.3
5.3.1 (static)
5.3.2 (readonly)
5.3.1
5.3.1
static
5.3.1
class A { public static int I; }
class B { public static int J; }
class UseStatic
{
static void Main()
{
A a=new A();
a.I=1;
A.I=2;
B.J=3;
}
}
//
//
//
5.3.2
readonly
5.6.2
5.4
5.4
static
object
5.4
using System;
class A{
public const static int X=10;
public const int Y=20; }
class UseConst{
static void Main()
{
A a = new A();
Console.WriteLine(a.Y);
Console.WriteLine(A.Y);
}
//conststatic
//
5.4
constreadonly
using System;
namespace rand
{
class Program
{
public static void Main()
{
RandNum r1=new RandNum();
Console.WriteLine("{0} {1} {2}", RandNum.x,RandNum.y, r1.z);
RandNum r2 = new RandNum();
Console.WriteLine("{0} {1} {2}", RandNum.x, RandNum.y, r2.z);
}
}
class RandNum //
{
public static Random rand = new Random();
public const int x = 100;
public static readonly int y = rand.Next(100);
public readonly int z = rand.Next(100);
}
}
5.5
5.5.1
5.5.2
5.5.1
static
this(5.11)
5-2
5-2
//StaticMethod.cs
using System;
class Cat
{
static Cat c = new Cat();
public int Age = 0;
public static Cat BirthCat()
{
return new Cat();
}
public static Cat GetCat()
{
return c;
}
}
class StaticMethod
{
static void Main()
{
Cat cat1=Cat.BirthCat();
Cat.GetCat().Age=1;
Console.WriteLine("CAT 1 Age={0}", cat1.Age);
Console.WriteLine("CAT 2 Age={0}",
Cat.GetCat().Age);
}
}
5.5.2
5-3
//PassObject.cs
using System;
class Number
{
public int I;
}
class PassObject
{
static void Main()
{
Number num1=new Number();
Number num2=num1;
//num2num1
num1.I=0;
Console.WriteLine("");
Console.WriteLine("f1num1.I={0}",num1.I);
f1(num1);
Console.WriteLine("f1num1.I={0}",num1.I);
if(num1==num2) //num2num1
Console.WriteLine("num2num1");
else
Console.WriteLine("num2num1");
Number num3=new Number();
Number num4=num3; // num4num3
num3.I=0;
Console.WriteLine("\n");
Console.WriteLine("f2num3.I={0}",num3.I);
f2(ref num3);
Console.WriteLine("f2num3.I={0}",num3.I);
if(num3==num4) //num4num3
Console.WriteLine("num4num3");
else
Console.WriteLine("num4num3");
}
}
}
5.5.2
===!=
class Number{
public int I; }
Number n1=new Number();
Number n2=new Number();
n1.I=n2.I=0;
bool b=(n1==n2); // b=?
n1=n2;
b=(n1==n2);
//
b=?
5.5.2
i=j
:
i
j
1
2
c2 = c1
:
i
j
c2
c2
c1
c1
2
2
c2: Cat
c1: Cat
5.6
C#
using System
struct A
{ public int I;
public void Method(){}
}
class B
{
static void Main()
{
int i;
Console.WriteLine("i={0}",i);
//
i=1;
Console.WriteLine("i={0}",i);
A a;
Console.WriteLine("a.I={0}",I); //
a.Method();
//
a.I=0;
Console.WriteLine("a.I={0}",I);
a.Method();
}
}
5.6 ()
C#
C#
5-4
5-4
//DefaultValues.cs
using System;
enum E{E0,E1,E2}
struct A
{
public int I;
}
class B{ }
class C
{
sbyte
byte
short
ushort
int
uint
long
ulong
float
double
decimal
bool
char
E
A
B
sb;
b;
s;
us;
i;
ui;
longi;
ulongi;
f;
d;
dec;
boolean;
c;
e;
a;
bclass;
|
\n"+
| ----------------\n"+
|
"+sb+"\n"+
|
"+b+"\n"+
|
"+s+"\n"+
|
"+us+"\n"+
|
"+i+"\n"+
|
"+ui+"\n"+
|
"+longi+"\n"+
|
"+ulongi+"\n"+
|
"+f+"\n"+
|
"+d+"\n"+
|
"+dec+"\n"+
|
"+boolean+"\n"+
|
"+c+"\n"+
"+e+"\n"+
"+a+"\n"+
|
"+a.I+"\n"+
|
"+bclass+"\n");
class DefaultValues
{
static void Main()
{
C c=new C();
c.Output();
}
}
5.6
5.6.1
5.6.2
5.6.3
5.6.4
5.6.1
.
class A{}
class B
{
char c='A';
byte b=6;
short s=60;
int i=600;
long l=700;
float f=2.2f;
double d=3.6;
A a=new A();
}
5.6.1
class B
//
{
static int i=2; //
int j=3;
int k=j*3;
//
int m=f();
//
int n=i;
//
int f()
{
return 1;
}
}
5.6.1
struct A
{
public int I=2;
}
//
5.6.2
5-5
5-5
//Constructor.cs
using System;
class Cat
{
public int Age;
public int Weight;
public Cat(int a,int w)
{
Age=a;
Weight=w;
}
}
class Constructor
{
static void Main()
{
Cat cat=new Cat(5,10);
//
Console.WriteLine("CAT: Age={0}\tWeight={1}",
cat.Age,cat.Weight);
}
}
5.6.2
5-6
//OverloadConstructors.cs
using System;
class Cat
{
public int Age;
public int Weight;
public Cat()
{
Age=2;
Weight=4;
Console.WriteLine("in Cat()");
}
public Cat(int a,int w)
{
Age=a;
Weight=w;
Console.WriteLine("in Cat(int a,int w)");
}
}
5.6.2
5-5
5-5
//Constructor.cs
using System;
class Cat
{
public int Age;
public int Weight;
public Cat(int a,int w)
{
Age=a;
Weight=w;
}
}
class Constructor
{
static void Main()
{
Cat cat=new Cat();
//
Console.WriteLine("CAT: Age={0}\tWeight={1}",
cat.Age,cat.Weight);
}
}
5.6.3
1
class StaticConstructor
{
public static int I;
public static int J;
static StaticConstructor()
{
I=1;
J=2;
}
}
5.6.3
5-7
5-7
//StaticInit.cs
using System;
class Cat
{
public Cat(int i)
{
Console.WriteLine("Cat({0})",i);
}
public void Method(int i)
{
Console.WriteLine("Method({0})",i);
}
}
class Cats
{
public static Cat C1;
public static Cat C2;
static Cats()
{
C1=new Cat(1);
C2=new Cat(2);
}
public Cats()
{
Console.WriteLine("Cats()");
}
class StaticInit
{
static void Main()
{
Console.WriteLine("in Main()");
Cats.C1.Method(7);
}
//
// static
Cats
c=new
Cats();
static Cats
c=new
Cats();
}
5.6.4
C#
struct A{
public int I;
public int J;
}
class B{
static void Main()
{
A a;
a.I=0;
a.J=1;
}
}
5.6.4
C#new
new
int i=0;
int i=new int(0);
//System.Int32
5.6.4
5-8
5-8
//StructInit.cs
using System;
struct A
{
public int I;
public int J;
public A(int i,int j)
{
I=i;
J=j;
}
}
class StructInit
{
static void Main()
{
A a1=new A();
//
Console.WriteLine("a1.I={0}\ta1.J={1}",a1.I,a1.J);
A a2=new A(1,1);
Console.WriteLine("a2.I={0}\ta2.J={1}",a2.I,a2.J);
}
}
5.7
C#
C#
5.7.1
5.7.2
5.7.3
5.7.1
C#
EXEDLL
EXE
5-9
5-6
5-9
5-6
//RefEXE.cs
using System;
class RefEXE
{
static void Main()
{
Console.WriteLine("5-6");
OverloadConstructors.Main();
}
}
5.7.1
csc
/reference/r
/reference/r/reference
/r
5-9
5-6
csc /r:P5_6.exe P5_9.exe
.net
P5_6.exe
5.7.1
DLL
5-10 DLL
//Dog.cs
using System;
public class Dog
{
public void Bark()
{
Console.WriteLine("Bowwow...");
}
}
5-10
DLL
Main
exe
dlldll
csc/target/t
library
csc /t:library P5_10.cs
5-10
DLL
Visual Studio.net
.cs
P5_10
shift+F6
5.7.2
C#
namespace NameSpaceName
{
5.7.2
namespace N1
{
namespace N2
{
namespace N3
{
public class A {}
}
}
}
5.7.2
.
namespace N1.N2.N3
{
public class A {}
5.7.2
.NET
5-11
//Animal.cs
using System;
namespace Liu.CShape.Ch05
{
public class Wolf
{
public void Howl()
{
Console.WriteLine("Howl...");
}
}
public class Tiger
{
public void Growl()
{
Console.WriteLine("Growl...");
}
}
}
5.7.2
5.7.3
class A{}
namespace N1.N2{
class B {}}
namespace N1.N2.N3
{
class C {
public static void Main() {
A a=new A();
B b=new B();
}
}
}
5.7.3
using
5.7.3
namespace
{
class
}
namespace
{
using
class
{
N1.N2
A {}
N3
N1.N2; //N1.N2
B
public static void Main()
{
A a=new A();
}
}
}
5.7.3
namespace
namespace
{
using
class
{
N1.N2 {class A {} }
N3
N1;
B
//N1
5.7.3
5-12
5-12
//UseNamesapce.cs
using Liu.CShape.Ch05;
//P5_11.dll
5.7.3
using Space1;
using Space2;
Space1Space2
MyClass
Myclass
MyClass
Space1MyClass
5.7.3
5.7.3
namespace N1.N2
{ class A{} }
namespace N3
{
using N1.N2
class A{}
class B
{
public static void Main()
{
A a = new A(); //N3.A
N1.N2.A aa = new A(); //N1.N2.A
}
}
}
5.8
C#
publicinternalprotected internal
protectedprivate
5.8.1
5.8.2
5.8.1
publicinternal
public
internal
5.8.1
publicinternalprotected internalprotectedprivate
public
internalprivate
private
class OuterClass
//internal
{
class InnerClass1{} //private
protected internal class InnerClass2{}
public class InnerClass3{}
}
5.8.2
public
private
internal
5.8.2
protected internal
protected
protected internal
protected
5.8.2
private
C#C++
5-13
//UseTime.cs
using System;
public class Time
{
private int hour;
private int minute;
private int second;
public Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
class UseTime
{
static void Main()
{
Time t=new Time(12,0,0);
Console.WriteLine("{0}:{1}:{2}",t.getHour(),t.getMinut
e(),t.getSecond());
t.setHour(8);
t.setMinute(30);
t.setSecond(30);
Console.WriteLine("{0}:{1}:{2}",t.getHour(),t.getMinut
e(),t.getSecond());
}
}
5.8.2
5-13
5.9
getset
5-13hour
Hour
5.9
public int Hour
//Hour
{
get
//get
{
return hour;
}
set
//set
{
hour=((value>=0)&&(value<24)?value:0);
}
}
5.9
setvalue
get
set
getset
5-14
//UseTime.cs
using System;
public class Time
{
private int hour;
private int minute;
private int second;
public Time(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
}
}
class UseTime1
{
static void Main()
{
Time t=new Time(12,0,0);
Console.WriteLine("{0}:{1}:{2}",t.Hour,t.Minute,t.Second);
t.Hour=8;
t.Minute=30;
t.Second=30;
Console.WriteLine("{0}:{1}:{2}",t.Hour,t.Minute,t.Second);
}
}
}
5.9
value
5.9
public class A
{
private int i;
private int j;
public int Sub
//
{
get
{
return j-i;
}
}
public A(int a,int b)
{
i=a;
j=b;
}
}
5.10
5.10.1
5.10.2
5.10.3
5.10.1
class A
{
public void Method()
{
i++;
//i
Console.WriteLine(i);
}
private int i=2;
}
5.10.2
void f()
{
int i=10;
//i
if(i>0)
{
...
int j=2; //j
...
}
//j
}
//i
5.10.2
void f()
{
int i=10;
{
...
int i =2; //
...
}
}
5.10.2
void f()
{
int x=0;
int y=0;
//for
for(int i=1;i<10;i++)
x+=i;
for(int i=1;i<10;i++)
y+=i;
}
5.10.2
this
using System;
class A{
const int i = 10;
int j = 20;
void f(){}
public void Method(){
int i = 1; int j = 2; const int f = 3;
Console.WriteLine(i);
//
Console.WriteLine(j);
//
Console.WriteLine(f);
//
Console.WriteLine(A.i);
//
Console.WriteLine(this.j); //
this.f();
//
f();
//this
}
}
5.10.3
C#
void f()
{
...
{
}
}
...
Cat cat=new Cat();
...
//cat
5.10.3
"~"
5-15
5-15
//Destruct.cs
using System;
class Destruct
{
Destruct()
{
Console.WriteLine("Destruct()");
}
~Destruct()
{
Console.WriteLine("~Destruct()");
}
5.11 this
this
this
this
this
This
5.11 this
5_13Time
public Time(int h,int m,int s)
{
this.hour=h;
this.minute=m;
this.second=s;
}
this
5.11 this
this
5-16
5-17
5-18
5-16
//MyThis1.cs
using System;
class Cat
{
private int age=0;
public Cat Grow()
{
age++;
return this;
}
public void Print()
{
Console.WriteLine("{0}",age);
}
}
5-17
//MyThis2.cs
using System;
class Cat
{
private int age;
private int weight;
public Cat(int age,int weight)
ageweight
{
this.age=age;
this.weight=weight;
}
public void Print()
{
Console.WriteLine("{0},{1}",age,weight);
}
}
5-18
//MyThis3.cs
using System;
class Cat
{
private int age;
private int weight;
public int Age
{
get
{
return age;
}
set
{
age=value;
}
}
5.11 this
5_18this
this
this
5.12
1
class
2
new
3
refout
5.12
5
5.12
9
1
2Rectangle
32Rectangle
(0,0)
4
Rectangle
(2.1,3.2)(5.2,6.3)
Rectangle
(1,2)(6.8,10.5)