我正在閱讀XML格式的一些數據並將它放在我的類中,我只是想知道最佳做法是什麼關於字段可以是空的,如果它們是空的,則有一個默認值。沒有提供的值不需要寫回文件。我應該公開一個可爲空或HasFoo字段?
我在考慮使用可爲空的類型,但是,指定默認值的代碼中的最佳方式是什麼(儘管我不需要每個字段的默認值,因爲並非所有字段都有指定的默認值或默認值值爲0)
目前我使用的是這樣的:
class SomeElement
{
public const int DefaultFoo = 123;
public int? Foo { get; set; }
}
,但不知道下面會更明顯:
class SomeElement
{
// Setting HasFoo to false will set Foo to the default value
public bool HasFoo { get; set; }
// Setting Foo to anything will set HasFoo to true
public int Foo { get; set; }
}
由於某些類有很多屬性,第二個選項將在類中創建更多的方法,但是,如果您不關心Foo是否具有值,則可能更易於使用。
的最後一種選擇可能會使用在基類或者一個靜態方法擴展方法來使默認容易獲得(基於this想法)
// In some method using the class
int value = SomeElementBase.GetValueOrDefault(() => myObj.Foo);
// or an extension method
int value = myObj.GetValueOrDefault(x => x.Foo);
我仍然供應DefaultFoo
領域但靜態/擴展方法可能會更容易訪問?
你的想法是什麼?有沒有人遇到過這個問題?我應該只使用默認值,並且在保存迴文件忽略等於默認值的字段時?
您需要公開非valuetype對象嗎? (即參考)? – 2010-07-09 21:09:09
一些元素是字符串,但沒有一個是自定義類。 – Samuel 2010-07-09 21:17:51