閺€鎯版 (0) +1 鐠э拷 (0) +1 闊拷 (0) +1
閺€鎯版閹存劕濮�閺屻儳婀呴弨鎯版>>

正在阅读:c#中结构与类的区别c#中结构与类的区别

2004-06-04 15:27 出处:PConline 作者:YAOTIEBING 责任编辑:linjixiong

 

     类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被继承

     注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样

例如:结构实现接口


  interface IImage
{
    void Paint();
}
 
struct Picture : IImage
{
    public void Paint()
    {
         // painting code goes here
    }
    private int x, y, z;  // other struct members
}

 

  3.内部结构:

结构:

没有默认的构造函数,但是可以添加构造函数

    没有析构函数

    没有 abstract 和 sealed(因为不能继承)

    不能有protected 修饰符

    可以不使用new 初始化

在结构中初始化实例字段是错误的

类:

 有默认的构造函数

 有析构函数

 可以使用 abstract 和 sealed

有protected 修饰符

必须使用new 初始化

三.如何选择结构还是类

   讨论了结构与类的相同之处和差别之后,下面讨论如何选择使用结构还是类:

1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些

2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。

3.在表现抽象和多级别的对象层次时,类是最好的选择

4.大多数情况下该类型只是一些数据时,结构时最佳的选择






察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
閹靛婧€鐠佸潡妫�閸ョ偛鍩屾い鍫曞劥