我想问一下高手们,           class Program
    {
        struct point
        {
            public int x;
            public int y;
        }
        struct  line
        {
            public point starting;
            public point ending;        }
        class lineapp
        {            static void Main(string[] args)
            {
                line myline;
                myline.starting.x = 1;
                myline.starting.y = 4;
                myline.ending.x = 10;
                myline.ending.y = 11;
                Console.WriteLine("p1:({0},{1})", myline.starting.x, myline.starting.y);
                Console.WriteLine("p2:({0},{1})", myline.ending.x, myline.ending.y);
这段代码中,有个line myline,这个line是什么,有什么作用,我好像把struct改为class会出现错误
好像我觉得结构和类差不多,有了class可以不用struct,可以吗?
结构有什么好处?跟类有什么区别,忘高手速度解答

解决方案 »

  1.   

    沙发class 和struct的区别
    结构是值类型,class 是引用类型。
    所有结构类型隐式地从类 System.valueType 继承。
    对结构类型变量进行赋值意味着将创建所赋的值的一个“副本”。
    一个结构的默认值的计算如下:将所有值类型字段设置为它们的默认值,并将所有引用类型字段设置为 null,这样就产生了该结构的默认值。
    使用装箱和取消装箱操作在结构类型和 object 之间进行转换。
    对于结构,this 的意义不同。
    在结构中,实例字段声明中不能含有变量初始值设定项。
    在结构中不能声明无参数的实例构造函数。
      

  2.   

    你用过DateTime结构体或者Point结构体吗?
    与你代码中的line很相像了
      

  3.   

    class 和struct的区别 
    结构是值类型,class 是引用类型。 
    所有结构类型隐式地从类 System.valueType 继承。
    而类的最终父类都是Object
      

  4.   

    class 是个地址指向 成员的存储空间
    struct 直接是一个存储空间
      

  5.   

    这段代码中,有个line myline,这个line是什么,有什么作用,我好像把struct改为class会出现错误 
    :
    因为改为class后line还是没有分配内存,只是空引用。好像我觉得结构和类差不多,有了class可以不用struct,可以吗?
    :结构可以说是一个轻量级的类。但是它不是类。
    当一个数据模型有如下的特点,比如有字段,方法,但是不作为其他模型的 父。
    也不继承 其他模型,则可以用结构了

     
    结构有什么好处?跟类有什么区别,忘高手速度解答:好处就是上面所说的吧,
    他跟类的区别就是 
    1,一个是引用类型,一个是值类型,
    2,结构没有默认的构造函数,也不能提供默认的构造函数。
    3,参数传递的时候一个是值传递,一个是引用传递。
    这个时候要注意以下,要引用有很多字段,很多方法的时候考虑能不能用类。
    因为他值传递,所以会出现他所有成员的副本,效率会下降。
      

  6.   

    class 的话,用line myline = new line();
    代替line myline;
    看看。
      

  7.   

    line是变量名册类型,myline就是变量名称了 你别管他是什么你就这样理解