c# - 如何为自定义 map 类实现具有内联初始化的构造函数?

标签 c# .net .net-3.5

我有一个场景,我有一个自定义映射类。

我希望能够同时创建新实例并为其声明数据,并实现类似于以下的语法:

    public static HybridDictionary Names = new HybridDictionary()        
    { 
        {People.Dave, "Dave H."},
        {People.Wendy, "Wendy R."}
    }

等等。如何定义我的类以启用这种语法?

最佳答案

您要实现的目标是 Collection Initializer

您的 HybridDictionary 类需要实现 IEnumerable<> 并具有如下所示的 Add 方法:

public void Add(People p, string name)
{
    ....
}

然后你的实例化应该工作。

注意:按照惯例,键应该是第一个参数,后跟值(即 void Add(string key, People value)。

关于c# - 如何为自定义 map 类实现具有内联初始化的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022837/

相关文章:

c# - 返回已完成任务的最佳方法是什么?

c# - 协变和泛型

c# - gzipstream.copyto .net 3.5 中的替代且简单的方法

c# - 有没有办法在调试中设置断点 "at this very moment"?它与任何编程语言或 IDE 有关

c# - 使用星号时导致程序集版本增加的原因是什么?

c# - 单独组装中的 WCF 合约 - 如何将其用作端点合约?

Android 和 iOS 库的行为就像 1996 年之前从未有过夏令时一样

c# - 了解自动实现的属性

使用 .net 3.5 进行不带参数的 C# 调用

c# - 无法识别的扩展方法