當引用我們使用委託其他類。在單元測試期間,我們重寫這些值。C#中的數組引用
我有一個類,它比其他20類的引用,所以我想我會創建代表組成的數組。如果我創建這些代表的靜態陣列(見下面的代碼)它存儲的代表值,而不是參考委託。
作爲結果,單元測試不能更新該值。爲了解決這個問題,我創建了一個委託數組,當我想使用它們時,我想讓下面的代碼工作。
private static Func<int, bool> firstMethod = ExternalClass1.Method;
private static Func<int, bool> secondMethod = ExternalClass2.Method;
private static Func<int, bool> thirdMethod = ExternalClass3.Method;
private static Func<int, bool>[] handlers = { first, second, third };
public bool Test(int value)
{
foreach (var handler in handlers)
{
if (handler.Invoke(value) == true)
{
return true;
}
}
return false;
}
那麼問題是什麼?什麼是錯誤? – 2011-04-12 18:32:48
您是否考慮過在某些情況下使用接口而不是委託? – TrueWill 2011-04-12 18:43:31
我們使用CSLA,因此所討論的方法是靜態的。 AIUI接口不能用靜態方法實現,所以這種方法不是一種選擇。 – sixeyes 2011-04-12 19:06:40