[英]Containing type does not implement interface when trying to explicitly define a method
interface eer {
public abstract void S1<T>(T? t) where T : struct;
public abstract void S1<T>(T? t) ;
}
class A1 : eer {
void eer.S1<T>(T? t){}
void eer.S1<T>(T? t)where T:default{}
}
class B1 : A1 {
void eer.S1<T>(T? t) { } //error
void eer.S1<T>(T? t) where T : default { } //error
}
所以我的B1
class间接实现了eer
接口,但是当我尝试在B1
中显式实现S1<T>(T? t) where T: struct
和S1<T>(T? t)
方法时,我收到错误消息,指出包含类型不实现eer
接口。
我猜这是因为在某些情况下可能会有一些歧义。
你能告诉我为什么会这样吗(现在对我来说没有意义)?
只需将eer
接口添加到B1
即可。 解释是A1
必须实现eer
接口,而B1
与此无关。 当你想在显式模式 (eer.S1) 中实现方法时, B1
不知道你想实现eer
接口,因为它没有为B1
class 定义。
class B1 : A1, eer
{
void eer.S1<T>(T? t) { } //error
void eer.S1<T>(T? t) where T : default { } //error
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.