请问structure的具体用法和适用场合?适用时有什么语法规则和需要注意的地方,谢谢大家啦

解决方案 »

  1.   

    使用类
    需要非常多内存的时候,因为栈的容量有限,而堆通常是足够使用的。
    需要在声明字段的时候进行初始化。
    需要从基类继承。
    需要多态性。接口也可以用来实现多态性,但是因为结构是值类型,尽管它可以从接口继承,但是在多态过程中会进行装箱和解箱的操作。
    结构是值类型,一个结构类型的变量就代表它的具体内容;类是引用类型,一个类类型的变量可以看作指向其内容的指针。所以结构类型声明后就可以用,而类类型声明后必须用new关键字为它分配内存空间,结构类型不能为null,类类型可以为null,即不指向任何内存空间。
    e.g.
     class Program
        {
            private static void Main(string[] args)
            {
                StructType structVar;
                structVar.i = 0;
                ChangeValue(structVar);            ClassType classVar = new ClassType();
                classVar.i = 0;
                ChangeValue(classVar);            Console.WriteLine(structVar.i + "|" + classVar.i);
                Console.Read();
            }
            static void ChangeValue(StructType structArg)
            {
                structArg.i = 1;
            }
            static void ChangeValue(ClassType classArg)
            {
                classArg.i = 1;
            }
        }
        struct StructType
        {
            public int i;
        }
        class ClassType
        {
            public int i;
        }