当引用我们使用委托其他类。在单元测试期间,我们重写这些值。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