我沒有通過閱讀使用指南找到信息,所以我在這裏問我的問題: 假設下面的情況:冗餘代碼合同,前提條件的C#使用
/// <summary>
/// Initalisiert eine neue Instanz des SettingsManager
/// </summary>
/// <param name="settingsRepo">Das SettingsRepository welches die Einstellungen enthält</param>
public SettingsManager(ISettingsRepository settingsRepo)
{
Contract.Requires<ArgumentNullException>(settingsRepo != null, "The parameter settingsRepo cant be null");
_settingsRepo = settingsRepo;
}
/// <summary>
/// Lädt alle Einstellungen
/// </summary>
public void Load()
{
Contract.Requires<NullReferenceException>(_settingsRepo != null, "The repository cant be null");
.
.
.
}
其中_settingsRepo
是一家全球私人領域SettingsManager
。在構造函數中,我定義了前提條件,參數settingsRepo
不爲空。因此,當settingsRepo
等於null
時,會引發異常。但方法Load()
使用在實例化期間確定不是null
的字段_settingsRepo
。但是,我不知道_settingsRepo
目前是否等於null
,當使用Load()
時,我在方法Load()
中定義的前提條件被認爲是多餘的,或者我應該將其擱置。
Load是一種實例方法。如果'settingsRepo'爲空,則在C'tor中拋出異常,因此該對象未創建。你可以在'Load'中刪除驗證。 –
'_settingsRepo'聲明爲'readonly'嗎? –