C# 结构体与类的区别:值类型、继承、内存分配等
C# 中的结构体与传统意义上的类有以下区别:
-
值类型 vs 引用类型:结构体属于值类型,而类属于引用类型。这意味着在使用结构体时,它的值会被完全复制到新的变量中,而在使用类时,只会传递引用。因此,对结构体的修改不会影响原始变量,而对类的修改会影响所有引用该类的变量。
-
继承:结构体不支持继承,而类支持继承。
-
默认构造函数:结构体会自动获得一个默认构造函数,而类必须显式定义构造函数。
-
内存分配:结构体在栈上分配内存,而类在堆上分配内存。这意味着结构体的创建和销毁速度更快,但是在存储大量数据时,可能会出现栈溢出的问题。
-
接口实现:结构体可以实现接口,但是不能实现虚方法。类可以实现接口和虚方法。
-
默认访问权限:结构体的默认访问权限为public,而类的默认访问权限为internal。
原文地址: https://www.cveoy.top/t/topic/oCGQ 著作权归作者所有。请勿转载和采集!