在.NET框架中,有一个通用的接口IEnumerable<T>
其中来自未通用IEnumerable
继承,并且它们都具有一个GetEnumerator()
方法。这两个GetEnumerator()
之间唯一的区别是返回类型。 现在我有一个类似的设计,但是当我编译代码,编译器说:IEnumerable.GetEnumerator()和IEnumerable <T> .GetEnumerator()
MyInterface<T>.GetItem()
“隐藏继承成员” MyInterface.GetItem()
”。如果需要隐藏,请使用新关键字。
MyInterface<T>.GetItem()
返回一个具体类型T,而MyInterface.GetItem()
返回类型System.Object。
所以我想如果BCL团队的人编译.net框架,他们会得到相同的警告。
我觉得有编译器警告不好,你怎么看?我该如何解决这个问题?我的意思是,当调用MyInterface<T>.GetItem()
时,我不想只是System.Object类型的一个实例。
在此先感谢! :-)
补充: 我说的接口过问:IMyInterface的从 IMyInterface的继承,并且它们都具有的GetItem()方法(IMyInterface.GetItem()返回一个类型T,而IMyInterface的。 GetItem()返回类型System.Object)。问题是,如果我们的代码只有这两个接口,也就是没有派生的具体类,编译源代码后我们会遇到编译器警告。
嗨,我不是说这个,请在帖子中看到我的“补充”。谢谢:) – 2010-03-15 11:54:24
+1,即使你不能为明确的接口实现指定访问级别 – erikkallen 2010-03-15 12:18:48
@Dylan:根据编译器建议使用new关键字。看到我上面的编辑。 – 2010-03-15 12:18:53