[疑难] 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也没用(因为不相关)。




分析的很好
Global site tag (gtag.js) - Google Analytics