我正在学习C#,想知道是否有人在下面解释以下语法?我了解通用实现使用的是速记分配,所以我明白了这一点。
1)为什么GetEnumerator方法的非通用实现未指定任何访问修饰符?如果我在其上放置了公共访问修饰符,IDE也会抱怨。
2)为什么非通用版本像IEnumerable.GetEnumerator一样被写出-特别是为什么它使用(。)语法引用IEnumerable?
我知道您需要为基础IEnumerable<T>
实现接口方法,因为它实现了IEnumerable,但是我只是在努力理解为什么没有通用版本的语法以及为什么它没有遵循相同的模式?即只是看起来没有附加<T>
一样?
3)您经常看到这种语法吗?如果要使用一组示例接口(例如,看起来如何?)
public class MyClass : IEnumerable<string>
{
private List<string> _quoteList = new List<string>();
public IEnumerator<string> GetEnumerator() => _quoteList.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator()
{
return _quoteList.GetEnumerator();
}
}