[疑难] d如何处理同名的接口函数
RednaxelaFX
2009-05-18
同名方法需要有不同实现,这在C#里经常用于方法名与参数类型相同,但返回类型不同的时候。例如List<T>实现了IEnumerable<T>与IEnumerable,后两个接口都有GetEnumerator()方法,但返回类型却不同:
public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerable<T> : IEnumerable { IEnumerator<T> GetEnumerator(); } 这种情况下,两个版本的方法没办法合并成一个版本,即使用RTTI也没用(因为不相关)。 |
|
d2008
2009-05-20
RednaxelaFX 写道 同名方法需要有不同实现,这在C#里经常用于方法名与参数类型相同,但返回类型不同的时候。例如List<T>实现了IEnumerable<T>与IEnumerable,后两个接口都有GetEnumerator()方法,但返回类型却不同:
public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerable<T> : IEnumerable { IEnumerator<T> GetEnumerator(); } 这种情况下,两个版本的方法没办法合并成一个版本,即使用RTTI也没用(因为不相关)。 分析的很好 |