引用
c#的引用类似于C语言的指针。如:
class Person
{
int age;
string name;
}
Person p1,p2;//此表达式执行后,系统只是分配了两个地址来存放这两个类变量名,并没有分配长度为int+string大小的空间
p1= new person();
p1.age=10;//此两式执行后系统分配了内存用以存储p1.age和p1.name的值,而p1则指向这个内存空间
p1.name="wwe";//
p2=p1;//p2和p1指向同一个内存空间
以上p2=p1;的结果其实是p2和p1指向同一块内存空间
还要注意的是,变量的声明并没有分配空间。引用他所分配的也只是一个指针,他所指的是变量名的地址。
一旦变量通过编译,系统会为他自动初始化,那样也就分配了空间。初始化值一般为零。
属性
class Person
{
int age//变量age是一个属性
{
get{return age;}
set
{
if(value<0) throw new Exception("age的值不能小于0!");
age=value;
}
}
string name;//变量name是一个字段
}
可见属性有利于对变量进行判断
构造函数
C#构造函数必须声明为public才能使用