[C#] 對像初始值設定項和構造函數有什麼區別?


Answers

構造函數是一種類型的定義方法,它接受指定數量的參數並用於創建和初始化對象。

對像初始化程序是在構造函數之後的對像上運行的代碼,可用於將對像上的任意數量的字段簡潔地設置為指定的值。 這些字段的設置發生調用構造函數之後

如果構造函數充分設置了對象的初始狀態,則可以在沒有對像初始值設定項的幫助下使用構造函數。 但是,對像初始值設定項必須與構造函數一起使用。 該語法需要構造函數的顯式或隱式使用(VB.Net和C#)來創建初始對象。 當構造函數沒有充分初始化對像以供您使用時,您會使用對像初始值設定項,並且會使用一些簡單的字段和/或屬性集。

Question

這兩者之間有什麼區別,你會在什麼時候使用“對像初始化器”而不是“構造器”,反之亦然? 如果有問題,我正在與C#合作。 另外,是C#還是.NET專用的對像初始值設定項方法?




如果你的屬性必須設置在你的對像上才能正常工作,一種方法是隻公開一個構造函數,它需要這些必需的屬性作為參數。

在那種情況下,你不能創建你的對象而不指定那些必需的屬性。 像這樣的東西不能由對像初始化器強制執行。

對像初始化器實際上只是簡化初始分配的“語法方便”。 很好,但功能上並不相關。

渣子