Is it possible to make a parameter implement two interfaces?
寻找一种方法:
public interface INumber1 {}
public interface INumber2 {}
public class TestObject : INumber1, INumber2 {}
public static class TestClass
{
public static void TestMethod(INumber1&INumber2 testobject)
{
...
}
}
调用TestMethod:
TestClass.TestMethod(new TestObject());
问题是我需要一个参数来包含来自INumber1和INumber2的方法。 提示?
答案 0 :(得分:5)
试试这个:
public static void TestMethod<T>(T testObject) Where T:INumber,INumber2
{
}
答案 1 :(得分:0)
创建一个通用界面。
答案 2 :(得分:0)
您可以使用通用方法:
public static void TestMethod<T>(T testObject)
where T : INumber1, INumber2
{
}
或者,您可以创建一个扩展INumber1
和INumber2
:
public interface INumber1And2 {}
public class TestObject : INumber1And2
我个人更喜欢通用的解决方案,如果你可以逃脱它,但有时泛型可以使事情复杂化。另一方面,您设法保持两个接口良好且隔离。
答案 3 :(得分:-1)
是否有可能让Inumber2继承自Inumber1?如果没有,是否会使通用方法有效?
public static void TestMethod<T>(T testObject);