标签:
很困惑,为什么C#会有struct 这样一个关键字。虽然我用C#几年了,但绝少用到此关键字。我在相关书籍上学习C#的时候,看到过struct内容——但C#并不是我的第一入门语言,所以没有那么细致的学习。这其中也有一部分原因是有些书籍会淡化struct,更在的原因则在于我的先验经验上。忽略struct关键字的理由如下:
大概如此想法吧。最近当做面试官,面试了一些应聘者,另一C++出生的哥们,问到了struct与class的区别——甚至内存布局,一想到自己也不甚清楚,还是了解一下吧。C++出身的人,总是不忘内存。
在MSDN上找到关于struct的相关信息:strcut是值类型,而class是引用类型。struct在赋值时,是拷贝操作。而引用类型,只是引用了同一内容。值类型类似C语言中的函数形参,而引用类型类似实参。还拥有值类型的一些其他特征,比如可空(Nullable),等等。
使用上还有其他一些特征与限制[1],但我更想知道为什么要有struct。
从以上内容可以看出使用struct的一般场景:
关于上述第二点,记得其失去了面向对象很多特性。
[1] 结构(C#编程指南), https://msdn.microsoft.com/zh-cn/library/saxz13w4(v=vs.90).aspx
[2] 类和结构(C#编程), https://msdn.microsoft.com/zh-cn/library/ms173109.aspx
[3] 使用结构(C#编程指南), https://msdn.microsoft.com/zh-cn/library/0taef578.aspx
[4] 深入理解C#,人民邮电出版社, p41-43
标签:
原文地址:http://www.cnblogs.com/jjseen/p/5158155.html