在 .net 框架中,有一个泛型接口
IEnumerable<T>
,它继承自非泛型的 IEnumerable
,它们都有一个 GetEnumerator()
方法。这两个 GetEnumerator()
唯一的区别在于返回类型。
现在我有一个类似的设计,但是当我编译代码时,编译器会报错:
MyInterface<T>.GetItem()
返回具体类型 T,而 MyInterface.GetItem()
返回类型为 System.Object。
因此,我认为如果 BCL 团队编译 .net 框架,他们也会得到同样的警告。
我认为编译器警告不好,你怎么看?我该如何解决这个问题?我的意思是,我想在调用 MyInterface<T>.GetItem()
时获取具体类型 T,而不仅仅是 System.Object 类型的实例。
谢谢!:-)
补充说明:
我指的是接口本身:IMyInterface 继承自 IMyInterface,并且它们都有 GetItem() 方法(IMyInterface.GetItem() 返回类型为 T,而 IMyInterface.GetItem() 返回类型为 System.Object)。问题是,如果我们的代码只有这两个接口,即没有派生的具体类,在编译源代码后将遇到编译器警告。