我没有通过阅读使用指南找到信息,所以我在这里问我的问题: 假设下面的情况:冗余代码合同,前提条件的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'吗? –