假设有一个名为A的类,其方法如下:
public void SomeMethod<T>(ref T para1)
{
...
}
现在我有一个接口(让我们称之为ITest)强制执行一个方法(让我们称之为RequiredMethod()),并且有很多类实现了这个接口。
在SomeMethod的声明中,我怎么能提到T需要实现ITest以便我可以做这样的事情?
public void SomeMethod<T implements ITest>(ref T para1)
{
...
para1.RequiredMethod();
...
}
答案 0 :(得分:6)
public void SomeMethod<T>(ref T para1)
where T : ITest
{
// ...
}
答案 1 :(得分:3)
您可以使用C#where
关键字。 MSDN page
public void SomeMethod<T>(ref T para1) where T : ITest
{
...
para1.RequiredMethod();
...
}
答案 2 :(得分:0)
您需要在SomeMethod中添加一个位置。
public void SomeMethod<T>(ref T para1) where T:ITest
答案 3 :(得分:-3)
为什么不在T类的声明中而不是在方法中实现接口?