C#中类与结构的区别
在C#中,类是功能最为强大的数据类型,类定义了数据类型的数据和行为。一下示例代码是在创建Person类中使用void定义一个无返回值类型的CheckName方法:
public class Person
{
public string name; //定义类成员
public void CheckName()
{
if(string.IsNullOrEmpty(name))
{
name = "姓名未登记";
}
}
}
在实际生活中我们经常把一组相关的信息放在一起。把一系列相关的变量组织成为一个单一实体的过程,我们称为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构成员。我们使用的简单类型(int、double 和 bool)实际上都是结构类型,在C#中,结构类型采用关键字“struct”来声明。示例代码如下:
struct Employee
{
public string empName; //员工姓名
public uint age; //年龄
public string department; //部门
public uint score; //积分
}
结构与类有一下3个方面的区别:
- 结构是值类型,而类是引用类型
- 结构不支持继承,而类完全可以被其它类继承,其自身也能被继承。 结构不能定义默认的构造函数,也没有析构函数,并且不能有abstract、virtual 或 protected修饰符,而类有默认的构造函数和析构函数。
结构与类虽然初始化都能使用new关键字,但它们之间的区别很大,主要体现在3个方面:结构是值类型,而类是引用类型;结构不能被继承而类可以;结构与类的内部结构不同。