为什么 IEnumerable 需要实现 Add 但没有其他方法
本文关键字:其他 方法 Add IEnumerable 实现 为什么 | 更新日期: 2023-09-27 18:35:30
我有这个类:
class Salaries : IEnumerable
{
List<double> salaries = new List<double>();
public Salaries()
{
}
public void Insert(double salary)
{
salaries.Add(salary);
}
public IEnumerator GetEnumerator()
{
return salaries.GetEnumerator();
}
}
在程序中,我尝试添加一些值,如下所示:
Salaries mySalaries = new Salaries() { 1000, 2000, 3000 };
我收到此错误:
"薪水"不包含"添加"的定义,并且找不到接受类型为"薪水"的第一个参数的扩展方法"Add"(您是否缺少 using 指令或程序集引用?
为什么我会收到此错误?
在哪里可以找到(使用 VS)实现Add
函数所需的内容?
如果我查看 List 定义,我可以看到更多函数,那么为什么编译器要我实现Add
呢?
(我知道如果我将类中的方法从插入更改为添加,那没关系。但问题是为什么只添加,它从哪里来?
因为使用集合初始值设定项时调用Add
方法。
Salaries mySalaries = new Salaries() { 1000, 2000, 3000 };
由编译器转换为:
Salaries mySalaries = new Salaries();
mySalaries.Add(1000);
mySalaries.Add(2000);
mySalaries.Add(3000);