【发布时间】:2012-01-06 14:38:06
【问题描述】:
public interface IVector<TScalar> {
void Add(ref IVector<TScalar> addend);
}
public struct Vector3f : IVector<float> {
public void Add(ref Vector3f addend);
}
编译器回答:
“Vector3f没有实现接口成员IVector<float>.Add(ref IVector<float>)”
【问题讨论】:
-
合约是它应该接受 any
IVector<float>,而不仅仅是你给定的实现。 C# 不支持将参数变化作为覆盖方法或实现接口的一种方式。 -
是的,我自己也意识到了,无论如何,TY。
标签: c# class interface substitution contract