我一直在使用API來做一些工作。這是我第一次使用它的方式:使客戶新成爲類的成員
var someStuff = new myObject();
someStuff.Name = "stackOverflow";
someStuff.Options.MaxSurname = 5; //this caused me to get a runtime exception, Options is Null
修復很簡單。我顯然不得不新增選項成員來創建一個實例。
someStuff.Options = new Options();
someStuff.Options.MaxSurname = 5;
顯然,這現在可以按預期工作。這個可以嗎?作爲一名客戶,我不知道我必須新增此選項成員。一旦我去調試並得到一個運行時空對象異常,快速修復。
是的,這就是我現在的做法,讓它看起來更自然。我知道編譯器在這種情況下並不聰明,我只是在想如果有另一種方法來設計這樣的類。即首次使用或類似的構建物。 –
@Science_Fiction:當然,myObject類可以在初始化時構造一個Options對象;或者它可能需要構造函數中的選項參數。這一切都取決於你想限制API的使用。 (正在製作所需的選項對象,例如...) –
設置選項是可選的。所以我想這就是爲什麼它沒有在構造函數中初始化的原因,因爲它可能被認爲毫無意義,因爲沒有人繼續使用它。 –