[英]Write a validation routine for a C# class on change event
我正在嘗試為我擁有的C#類編寫一個“ onchange”事件。 想法是在實例化類或更改屬性時捕獲任何內容,並觸發一些代碼以評估對象的“運行狀況”,然后根據所調用的方法將類的屬性設置為true或false。 我最初的嘗試是在每個屬性的設置器中簡單地調用一個私有方法,如下所示:
string _source = null;
public string Source
{
set
{
this._source = value;
OnClassChange();
}
get { return this._source; }
}
string _dest = null;
public string Dest
{
set
{
this._dest = value;
OnClassChange();
}
get { return this._dest; }
}
bool _isValid;
public bool IsValid
{
get { return _isValid; }
}
void OnClassChange()
{
_isValid = (_source == null) ? false : true ;
_isValid = (_dest == null) ? false : true;
}
但這似乎有點笨拙而不優雅……我想使用某種偵聽器,然后在我的OnClassChange()塊中簡單地遍歷該類的所有私有屬性,確定屬性的類型並調用一些邏輯確定該屬性的值是否有效。
您根本不需要一個字段,除非驗證費用很高(因此您希望避免在每次請求時都重新計算它),您只需:
public string Source { get; set; }
public string Destination { get; set; }
public bool IsValid { get { return Source != null && Destination != null; } }
在C#6中, IsValid
代碼將更加簡單:
public bool IsValid => Source != null && Destination != null;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.