我有一个很大的困难。我有一个问题要回答:为了正确,MyClass应该具备哪些功能?
var myVariable = new MyClass { 25 };
自从星期五以来我试图找到答案,但我还没有结果。你有什么想法吗?
答案 0 :(得分:5)
为了符合这种语法,该类需要两件事:
IEnumerable
(或其他一些暗示IEnumerable
的接口 - 它也可以从实现IEnumerable
的基类继承而来Add(...)
值int
方法
以下任何一个类声明都可以:
public class MyClass1 : IEnumerable
{
public void Add(int i) { }
public IEnumerator GetEnumerator() => null;
}
public class MyClass2 : IEnumerable
{
public void Add(double i) { }
public IEnumerator GetEnumerator() => null;
}
public class MyClass3 : IEnumerable
{
public void Add(object i) { }
public IEnumerator GetEnumerator() => null;
}
还有更多类型,编译器可以自动转换int
值,上面只有3个不同的例子。