3
我有一個類如何實現一個方法的先決條件?
public class MyService
{
public IList<Exception> ExList {get; private set;}
public bool HasErrors { get { return ExList.Count > 0; } }
public MyMethod()
{
ExList.Clear();
//- do some logic ---
}
}
我想打電話的MyMethod(),並檢查錯誤發生了。這樣的事情
var service = new MyService();
service.MyMethod();
if(service.HasErrors)
{
// - do some logic
}
service.MyMethod();
if(service.HasErrors)
{
// - do some logic
}
但我必須寫「ExList.Clear();」爲MyService類中的每個方法提供了一些手動操作。 問題是 - 是否有解決方案來避免這種情況?
我需要這樣的東西
public class MyService
{
public IList<Exception> ExList {get; private set;}
public bool HasErrors { get { return ExList.Count > 0; } }
private void Precondition()
{
ExList.Clear();
}
public MyMethod()
{
//- do some logic ---
}
}
和前提()會爲每個方法的調用自動調用。
廣東話你拋出並捕獲異常?你會考慮使用它們嗎? – alexm
因此,我必須將所有調用包裝到try {} catch {}中。它不適合我。如果在某些情況下我不想檢查錯誤呢? – Vyacheslav
我需要類似CodeContracts([ContractInvariantMethod] private void ObjectInvariant(){})中實現的東西。但是隻有在方法執行後纔會調用 – Vyacheslav