为什么 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呢?

(我知道如果我将类中的方法从插入更改为添加,那没关系。但问题是为什么只添加,它从哪里来?

为什么 IEnumerable 需要实现 Add 但没有其他方法

因为使用集合初始值设定项时调用Add方法。

Salaries mySalaries = new Salaries() { 1000, 2000, 3000 };

由编译器转换为:

Salaries mySalaries = new Salaries();
mySalaries.Add(1000);
mySalaries.Add(2000);
mySalaries.Add(3000);