我經常看到在C#這樣的方法:(這樣做,可能會或可能不會給結果的計算)帶有「out」參數的TryXXX-like方法vs返回一個可爲null的值類型?
bool TrySomething(SomeType inputData, out SomeOtherType result) { ... }
爲什麼人們不使用,而不是這樣呢?
Nullable<SomeOtherType> TrySomething(SomeType inputData) { ... }
它只是表現差異? 這是一個struct
,所以不應該有堆分配,對吧? 或者我錯過了什麼?
有時'null'是一個有效的值,而不是失敗的跡象......? –
特別是在int.TryParse,DateTime.TryParse和其他 –
的情況下@JoachimIsaksson想到了這一點,但是那麼這也可以反映在SomeOtherType的類型中?例如,我們可以用'Nullable'替換SomeOtherType。 –