[英]c# object instantiation
有什么區別:
Object o = new Object();
o.foo();
和
new Object().foo();
(假設我之后不需要參考)?
是否有任何理由使用一個而不是另一個(例如內存使用)?
執行方面沒有區別。
調試方面可能有所不同:
foo()
之前,它可以很方便地中斷 NullReferenceException
,如果同一語句中有多個解除引用操作,則可能會很棘手)。 我絕對不是說你應該總是將所有內容分開 - 只是它可以用於調試目的。
如果之后不需要實例,則沒有區別。
如果你不需要o
后語,那么沒有區別。
(JIT)編譯器可能會將它們視為相同。
所以這是一個品味問題。 在這種情況下,我略微偏愛第一個,但有時第二個樣本的流暢表示法更具可讀性。
沒有不同。
要探測它,你可以編譯兩個代碼(發布模式),用ildasm檢查它們,你會看到結果字節碼是相同的。
編輯:實際上,我有時發現在聲明變量時更容易調試。 更容易檢查,因此更容易調試。
編輯:刪除了錯誤的代碼
不同之處在於,在第一種情況下,您可以看到在調試器中創建的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.