structure value型
class     reference 型

解决方案 »

  1.   

    参考该贴我今天早上答的http://expert.csdn.net/Expert/topic/1230/1230416.xml?temp=.8882257
      

  2.   

    这个,好像不能说谁更强大吧……
    类和结构几乎没有什么不同,根本的差别只在于类是引用类型,结构是值类型。
    引用类型和值类型的区别,相信不用我说了吧。呵呵……
    不过在C#里我几乎没用过结构,全部都用类,结构要说有优点的话,可能就是性能上的吧。
    听说在Java里面没有结构,不知是不是真的。如果是真的话,为什么C#还会保留结构呢?只是因为要继承C、C++吗?
    如果我有什么说错了,请大家指正。我很菜的说。
      

  3.   

    真想念老一辈的MVP在的时候的C#论坛啊...>>1、可以被创建在堆或堆栈上;
    对头. 但是有些不一样.比如两个结构a,b, a=b以后是拷贝了两段内存,而类的对象a,b, a=b 只是一段.
    >>2、元素地默认访问为私有的;
    对头
    >>3、元素有默认值;
    都没有.(也可能我们说的不是一个东西,你再详细说说).>>4、均可以定义方法;
    对头.>>5、均可以包含构造函数和析构函数。
    结构有构造函数,但是不能是没有任何参数的构造函数.(下面的代码出错)
    public struct A
    {
    public int a;
    public int b;
    A()
    {
    a = 0;
    b = 0;
    }
    }结构不能有析构函数。(下面的代码出错)
    public struct A
    {
    public int a;
    public int b;
    public A(int aa, int bb)
    {
    a = 0;
    b = 0;
    } public ~A()
    {
    }
    }最后,我补充一些我知道的东西.
    1.结构不支持继承.
    2.对于大的结构体,在作为参数传递时,如果(不是必须)能使用ref,尽量使用,因为这样传递过去的是地址,而不是一个拷贝.但是这是就可以改变结构体的值了.
    3,结构体一个非常由于的地方,就是在和(unsafe)代码交互时.它指定字段在内存中的分布,你可以参考StructLayout的一些帮助.To :shems(流氓猪) 
    4.>>听说在Java里面没有结构,不知是不是真的.
    是真的.Java中是通过类和接口来实现的.
    5.>>如果是真的话,为什么C#还会保留结构呢?
    可能和上面的3有关吧.
      

  4.   

    本贴已结。
    yarshray、TheAres各得10分。
    再次致谢!