首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# KeyedCollection是如何初始化的?

c# KeyedCollection是如何初始化的?
EN

Stack Overflow用户
提问于 2015-12-29 01:38:45
回答 1查看 316关注 0票数 1

我正在阅读一些c#源代码codes.And --有些东西混淆了me.In的以下代码,OptionSet是从类KeyedCollection继承的,当OptionSet像下面这样初始化时,它将首先调用OptionSet()来获得一个新的但空的OptionSet,然后调用Add()两次以插入{“h-?”、v- =>语法( } )和{ "analyzer=",v=>分析器=v}。

我想知道为什么它会像这样初始化,为什么使用Add()?

代码语言:javascript
复制
var p = new OptionSet()
    {
        { "h|?|help", v => Syntax() },
        { "analyzer=", v => analyzer = v },
    }

public class OptionSet : KeyedCollection<string, Option>{
    public OptionSet ()
        {
        }
    public OptionSet Add (string prototype, Action<string> action){...}
    ...
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 02:09:45

当你这样做时:

代码语言:javascript
复制
var p = new AnyCollection()
{
    ...
}

您正在使用集合初始化器

来自这里

集合初始化器可以在初始化实现IEnumerable的集合类或具有添加扩展方法的类时指定一个或多个元素初始化器。元素初始化器可以是简单值、表达式或对象初始化器。通过使用集合初始化器,您不必在源代码中指定对类的Add方法的多次调用;编译器将添加调用.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34503257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档