在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转载自:http://www.cftea.com/c/2008/03/JHB3MJM8DYGS0JJ9.asp 目录
类与结构的示例比较 结构示例 public struct Person
{ string Name; int height; int weight public bool overWeight() { //implement something }
} 类示例 public class TestTime
{ int hours; int minutes; int seconds; public void passtime() { //implementation of behavior } } 调用过程 public class Test
{ public static ovid Main { Person Myperson=new Person //声明结构 TestTime Mytime=New TestTime //声明类 } } 从上面的例子中我们可以看到,类的声明和结构的声明非常类似,只是限定符后面是 struct 还是 class 的区别,而且使用时,定义新的结构和定义新的类的方法也非常类似。那么类和结构的具体区别是什么呢? 类与结构的差别 值类型与引用类型 结构 结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,string 对应 system.string 结构 ,通过使用结构可以创建更多的值类型。 类 类是引用类型,引用类型在堆上分配地址。 堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑。 因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用。 说明:
继承性 结构 不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用 sealed 声明,可是结构是隐式的 sealed。 类 完全可扩展的,除非显示的声明 sealed,否则类可以继承其他类和接口,自身也能被继承。 说明:
内部结构 结构
类
如何选择结构还是类 讨论了结构与类的相同之处和差别之后,下面讨论如何选择使用结构还是类:
---- 网友在 CSDN 上的回答: 结构可以看作是轻量级的类,在性能上要好一点。 相同之处:
不同之处:
..... 按照MSDN上的意思,实际上适合用 struct 的场合很小,结构使用指南:
相关阅读 |
请发表评论