有点奇怪为什么这不起作用
这是编译器的一个限制还是不支持它很有意义?
public class Class1<T> : IInterface
where T : Test2
{
public T Test { get; private set; }
}
public class Test2
{
}
internal interface IInterface
{
Test2 Test { get; }
}
我得到的错误是
'ClassLibrary1.Class1<T>' does not implement interface member 'ClassLibrary1.IInterface.Test'.
'ClassLibrary1.Class1<T>.Test' cannot implement 'ClassLibrary1.IInterface.Test' because it does not have the matching return type of 'ClassLibrary1.Test2'.
最佳答案
为了更正确,请显式实现接口:
public class Class1<T> : IInterface
where T : Test2
{
public T Test { get; private set; }
Test2 IInterface.Test
{
get { ... }
}
}
然后可以避免编译错误。
关于c# - 用通用约束实现接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12817911/