WEB开发网
开发学院软件开发C语言 C#中的结构与类 阅读

C#中的结构与类

 2009-03-04 08:17:49 来源:WEB开发网   
核心提示:C# Corner今天发表了Bechir Bejaoui的一篇文章《What really make difference between structures and classes?》,关于结构和类的区别其实是老生常谈,C#中的结构与类,不过本文总结得较为全面,所以翻译过来给大家共享,而结构则不是,9、结构总是具有

C# Corner今天发表了Bechir Bejaoui的一篇文章《What really make difference between structures and classes?》。关于结构和类的区别其实是老生常谈,不过本文总结得较为全面,所以翻译过来给大家共享。

总结起来,两者共有如下区别:

1、结构是值类型,类则是引用类型。因此前者是放在栈(Stack)里,后者则仅仅是将引用地址存放在栈里,而具体的值则存放在堆(heap)里。如下图所示:

C#中的结构与类

2、据第1点可以得出结论,那就是类对象通常用来传递大数据,而结构对象则用来传递小数据。

3、类可以被继承,而结构则不支持。

4、结构对象不能像类对象一样赋值为null。

5、结构不能像类一样定义析构器。

6、结构不能像类一样定义为抽象的。

7、在结构中不能重写方法,除非是object类型的如下方法:

Equals()

GetHashCode()

GetType()

ToString()

若要让结构具有多态特性,可以让其实现接口。

8、在类中定义的事件是线程安全的,而结构则不是。

9、结构总是具有一个默认的公共无参构造函数,但却不能像类一样定义私有的无参构造函数(结构也不能再定义公共的无参构造函数,这与类不相同):

    struct Me
    {
        private Me() // compile-time error
        {
        }
    }
    
    class Me
    {
        private Me() // runs Ok{
    }

1 2 3 4  下一页

Tags:结构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接