In .net Class and Struct
来源:互联网 发布:2016年淘宝交易额多少 编辑:程序博客网 时间:2024/05/18 01:34
struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。下面的示例显示了一个简单的结构声明。
...{
public decimal price;
public string title;
public string author;
}
结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:
1、在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。
2、结构不能声明默认构造函数(没有参数的构造函数)或析构函数。
结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。
结构是值类型 -- 如果从结构创建一个对象并将该对象赋给某个变量,变量则包含结构的全部值。复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副本的数据。由于结构不使用引用,因此结构没有标识 -- 具有相同数据的两个值类型实例是无法区分的。C# 中的所有值类型本质上都继承自 ValueType,后者继承自 Object。
编译器可以在一个称为装箱的过程中将值类型转换为引用类型。有关更多信息,请参见装箱和取消装箱。
结构具有以下特点:
1、结构是值类型,而类是引用类型。
2、与类不同,结构的实例化可以不使用 new 运算符。
3、结构可以声明构造函数,但它们必须带参数。
4、一个结构不能从另一个结构或类继承,而且不能作为一个类的基。因此,结构成员无法声明为 protected。所有结构都直接继承自System.ValueType,后者继承自 System.Object。
5、结构可以实现接口,但它们无法继承另一个结构。结构还可以包含构造函数、常量、字段、方法、属性、索引器、运算符、事件和嵌套类型,但如果同时需要上述几种成员,则应当考虑改为使用类作为类型。
总结:
1、struct是值类型,class是引用类型。
2、struct里面默认的成员是public的,而class里面默认的成员是private的。
3、struct不能被继承,而class可以被继承。
4、struct没有默认的构造函数,但是可以添加构造函数,没有析构函数;而class有默认的构造函数和析构函数。
- In .net Class and Struct
- What are the differences between struct and class in C++?
- C# class and struct
- 18.3 Class and struct differences
- C++ Class and Struct distinction
- Learning_log—struct and class
- C# Class and Struct 区别
- .NET中class和struct的区别
- .NET中class和struct的区别
- .NET中class和struct的区别。
- .net中class和struct的区别
- .NET中class和struct的区别
- .NET中struct与class的区别
- Difference between 'struct' and 'typedef struct' in C++?
- struct&& class
- struct | class
- struct && class
- struct class
- 上班了
- Java泛型列表数组
- (转)初识动态Bean
- UniversalQuery.net 1.0 beta is now available.
- 不同格式的Access文件导入Mssql数据库中
- In .net Class and Struct
- 把握幸福,把握机会,把握命运
- 写教案javabean在JSP中的使用
- 最详细的SQL注入相关的命令整理
- (转)BeanUtils简介
- 在所有的弱点中,最大的弱点就是怕暴露弱点
- DA13 – 在Data Abstract中使用NexusDB数据库
- js出错,求解,源码如下
- Struts+Hibernate入门实例