结构类型

Posted on 2008-04-10 20:47 火山博客 阅读(18) 评论(0)  编辑 收藏 引用 网摘 所属分类: 高职IT教育
 

11.结构是值类型,类是引用类型.

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是值类型的结构类型。


只有注册用户登录后才能发表评论, 未注册用户请先注册

posts - 35, comments - 16, trackbacks - 0, articles - 7

Copyright © 火山博客