袁瑞 的个人资料袁瑞的共享空间照片日志留言簿更多 工具 帮助

日志


5月8日

C#的结构和类的区别

结构:属于值类型,隐式派生自System.ValueType。结构是隐式密封的,因此不能被继承,但可以有构造函数(必须保留默认构造函数,不能显式创建无参数的构造函数,即自定义构造函数必须都有参数),可以实现接口,可以包含属性、方法、事件及重载运算符。成员默认是public。结构可以实现IDisposbale接口,但不能重写Finalized方法,因为其不会分配到托管堆上。

创建结构时如果不使用new关键字,需要为未赋值的成员赋值后才能使用。

类:属于引用类型,支持继承,但不能多继承。类成员默认私有访问权限。可以实现IDisposbale接口,可以间接重写Finalized方法(格式模仿C++的析构函数,不能带修饰符、参数和返回值)。类为了防止继承,可以声明为sealed。不想类被实例化,可以声明为abstract或静态类。