Posted on 2008-04-10 20:47
火山博客 阅读(18)
评论(0) 编辑 收藏 引用 网摘 所属分类:
高职IT教育
(1)1.结构是值类型,类是引用类型.
2. 结构不可以声明默认构造函数或析构函数,但是可以声明带参数的构造函数.
4. 一个结构不能从另一个结构或类继承
5. 结构可以实现接口
6. 在结构声明中,除非字段被声明为const 或static ,否则在声明中不可以初始化.
(2)结构类型是值类型
|
class Test
{
static void Main(string[] args)
{
AAA a = new AAA(100);
MM(a);
Console.WriteLine(a.k); //如果是class,结果为800;如果是struct,结果为100
}
static void MM(AAA s)
{
s.k = 800;
}
}
class AAA //改成struct AAA
{
public int k;
public AAA(int i)
{
k=i;
}
}
|
以上程序运行的结果是多少?请将第二个类改成“改成struct AAA”,运行结果又是多少?为什么?
答:对于AAA的定义,如果是class AAA定义成类,那么是引用类型,形参s和实参a是一个对象,修改s中的值,那么a中的值也会被修改,所以为800;
如果是struct AAA,那么是值类型,形参s是实参a的一个复本,各有独立的内存空间,s的值变化,a中的值不会变化,故结果为100。
System.DateTime是值类型的结构类型。