C#中类和结构的区别


为了区分类和结构,我们首先必须理解结构和类在持有和定义数据方面看似等效。两者都可以定义和持有其数据成员的一些默认值。但是,如果我们从更广阔的视角来看待它们,那么与结构相比,类提供了更大的灵活性和功能性。

以下是类和结构之间的一些重要区别。

序号关键点结构
1数据类型在类中定义的数据作为引用存储在内存中,并具有特定的地址以便访问,因此可以说类是引用类型。另一方面,对于结构,数据成员的值直接存储在栈中或内联包含的类型中,因此结构被认为是值类型。
2存储位置如上一点所述,类的数据成员作为引用存储,引用类型分配在堆内存中。另一方面,结构直接存储值,值类型分配在栈内存中。
3构造函数类可以定义构造函数和析构函数,因为它实现了它们的功能。另一方面,结构既不能有构造函数也不能有析构函数,因为它没有提供此类实现。
4实例化类引入了构造函数,类可以使用`new`关键字实例化其实例。另一方面,结构无需`new`关键字即可创建实例。
5继承类可以继承其父类的属性,因为它支持继承特性。另一方面,结构不支持继承。
6protected修饰符因为类支持protected修饰符,所以我们可以在类中定义的数据成员上使用protected修饰符。另一方面,结构不支持protected修饰符。

更新于:2020年6月9日

805 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告