回答
object
和Object
之間沒有區別。 object
只是C#的一個內置關鍵字,代表Object
(或者更確切地說System.Object
),就像int
代表System.Int32
一樣。
爲什麼你的所有屬性都是object
型?它不需要更多的資源(除了類型檢查和類型轉換),但肯定存在風險,因爲在編譯時你不知道你正在使用哪些類型。你需要檢查類型並且一直投射。如果您使用更多特定的類型,編譯器會負責爲您檢查。您確定您的物業沒有更適合的類型嗎?例如int
,string
或其他?
對象類型的成員只是對其他內容的引用。這意味着你有一堆引用必須轉換爲實際類型才能用於任何事情,這也意味着你必須跟蹤他們的實際類型。如果可能,您應該將類型更改爲您想要存儲的實際類型。
對象引用本身不會使用比其他任何引用類型更多或更少的資源,但由於每次使用它時都必須進行轉換,因此需要更多代碼才能處理數據。
C#中的關鍵字object
是框架中System.Object
類的別名。
我正在使用組件的Devexpress和EditValue屬性是對象類型。它們也可以爲null ,我將這些值作爲參數發送給存儲過程,因此我想使用對象類型。 –
唯一的問題是,您將不得不將對象轉換爲真實類型以便操縱它們。如果您知道您將使用字符串或int,則最好使用string或int而不是object。此外,這將使代碼在將來易於閱讀。對象太泛型,不會告訴你任何事情。
- 1. 對象類型私有類成員
- 2. Java類和成員對象類型
- 3. 訪問類的成員。這個類的對象從未實例化過。所有成員的類型都是靜態的
- 4. 訪問本地對象的私有成員(同一類類型)
- 5. 類成員是派生對象,其類型尚未知曉
- 6. 帶有靜態成員的C++模板類 - 對所有類的類都是相同的
- 7. Python數據類型是否都是基於C類的對象?
- 8. 所有對象成員
- 9. 抽象類類型「cv :: BackgroundSubtractorMOG2」的對象是不允許的。所有的方法都是純虛的
- 10. C++對象爲類成員
- 11. typename,類型成員和非類型成員:它是有效的代碼嗎?
- 12. 爲什麼一個類的靜態成員對於所有對象都是相同的?
- 13. 成員類對象有衝突嗎?
- 14. 將一個類的所有成員複製到當前對象
- 15. 獲取沒有對象的成員函數的返回類型
- 16. 創建一個對象的所有成員的文件和數據類型
- 17. 對象類型安全不是包的成員
- 18. Java成員對象的內部類相同類型
- 19. 蘊類型的類成員
- 20. 「對象」所有類型的列表 - Java
- 21. 自動遍歷相同類型的所有類成員?
- 22. 類的對象可以是其他類的成員變量嗎?
- 23. 所有類型的AspectJ類型模式都帶有屬性?
- 24. 對象的類型爲不與成員函數的對象類型兼容預選賽是常量
- 25. 演員對象類是誰的類型作爲參數傳遞
- 26. 初始化類的靜態常量成員,其中成員是私有類型?
- 27. 如何查找所有者類中的所有成員類?
- 28. 對於Java中的不同類型,泛型類的靜態成員是否有所不同?
- 29. 如何重寫成員的類型在子類的抽象類
- 30. 修改成員變量的類對象外,並具有在類對象變化
[object'和'Object']沒有區別](http://stackoverflow.com/questions/1017282/c-difference-between-system-object-and-object)。除此之外,儘可能避免使用'object'並使用強類型(f.e.a'int','string','Foo',...)。 –
他們甚至編譯到完全相同的東西。他們只是一個別名。同樣的東西,如'System.Double'和'double','System.Int32'和'int'等... –