C#语言类型
討論
所有類型在,值類型,引用類型用new創建,值類型由編譯器自動補全
int等引用類型是輕量化結構更像是結構體
值類型在棧中,引用類型在堆中
所有類型由類派生,可以說每個是對象,也可以不是
由于.NET Framework中的所有類都是從Object派生的,因此Object類中定義的每個方法都可用于系統中的所有對象。派生類可以并重寫其中的一些方法。
由于C#沒有單獨的一組基本類型和對象類型。
爭論
哲學
何為對象???什么是對象?:)我認為這就像一套數學。什么是“一切”? - Mehrdad Afshari 09年4月24日在13:24
wiki
一些面向對象的編程語言區分了引用類型和值類型,在運行效率和語法或語義問題等原因下,通常將這些類型稱為不存在復雜值類型的平臺上的對象和非對象。
Some object-oriented programming languages make a distinction between reference and value types, often referred to as objects and non-objects on platforms where complex value types don't exist, for reasons such as runtime efficiency and syntax or semantic issues.
個人觀點
個人認為c#里的預置類型,不是基本類型,可以自己diy的。int這種是受限的類,類似于結構體。對象是不受限的類。
參考
https://msdn.microsoft.com/en-us/library/system.int32%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
https://baike.baidu.com/item/%E5%85%AC%E5%85%B1%E8%AF%AD%E8%A8%80%E8%BF%90%E8%A1%8C%E6%97%B6/4361434?fr=aladdin
https://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)
總結
- 上一篇: MySQL——数据库和 SQL 概念&a
- 下一篇: Mitmproxy教程