簡體   English   中英

針對更改事件編寫C#類的驗證例程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM