我有一堂课:
public interface IA
{
TValue? GetValue<TValue>();
}
public class A : IA
{
public TValue? GetValue<TValue>()
{
...
if (value is not null)
return (TValue)value;
return default(TValue);
}
}
这没问题,但是当我尝试明确实现接口时:
public interface IA
{
TValue? GetValue<TValue>();
}
public class A : IA
{
TValue? IA.GetValue<TValue>()
{
...
if (value is not null)
return (TValue)value;
return default(TValue);
}
}
编译器抛出一个错误:
Cannot implicitly convert type TValue to TValue?
明确实现接口时是否有区别?这似乎仅在处理可空泛型返回类型时才会出现。
这是一个错误还是我遗漏了什么?