C# 中类和结构的区别
csharpserver side programmingprogramming
为了区分类和结构,我们必须首先了解结构和类在保存和定义数据的上下文中似乎是等价的。它们都可以定义并保存其数据成员中的一些默认值。但如果我们超越这个背景来考虑它们,那么与结构相比,类提供了更多的灵活性和功能。
以下是类和结构之间的重要区别。
Sr.不。 | 键 | 类 | 结构 |
---|---|---|---|
1 | 数据类型 | 类中定义的数据作为引用存储在内存中,并且具有特定的地址以便访问,因此可以说类属于引用类型。 | 另一方面,在结构的情况下,数据成员的值直接存储在堆栈中或内联包含类型中,因此结构被视为值类型。 |
2 | 存储 | 如上所述在上述观点中,如果是类,则数据成员将作为引用存储,并且引用类型分配在堆内存中。 | 另一方面,在结构中,直接值将被存储,因此值类型分配在堆栈内存中。 |
3 | 构造函数 | 类可以用构造函数和析构函数来定义,因为它已经实现了它们的功能。 | 另一方面,结构不能有构造函数或析构函数,因为它没有提供这样的实现。 |
4 | 实例化 | 由于类引入了构造函数,因此类可以使用 new 实例化其实例关键字。 | 另一方面,结构可以在没有 new 关键字的情况下创建实例。 |
5 | 继承 | 类可以从其父类继承属性,因为它支持继承功能。 | 另一方面,结构不支持继承。 |
6 | Protected 修饰符 | 我们可以将 protected 修饰符与类中定义的数据成员一起使用,因为类支持 protected 修饰符。 | 另一方面,结构不支持 protected 修饰符。 |