C# 等效于具有 init block 的 Java 匿名内部类

标签 c# java class initialization anonymous-class

在 Java 中,我喜欢使用这样的结构

List<String> list = new ArrayList<String>() {{add("foo");}};

有没有办法在 C# 中的 1 行中完成此操作?

最佳答案

这称为集合初始化程序,它是 C# 3.0 的一部分。

与列表一样,您可以初始化更复杂类型的集合,只要它们实现 IEnumerable 并为集合初始化程序中的每个元素提供适当的 Add 方法。例如,您可以使用 Add(key, value) Dictionary<TKey, TValue>的方法|像这样:

var dict = new Dictionary<string, int> 
{ 
    {"first", 10 }, 
    {"second", 20 }
};

更多详细信息可以在深入了解 C# 的第 8 章中找到,该章可以从 Manning's web site 免费下载。 .

关于C# 等效于具有 init block 的 Java 匿名内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/535720/

相关文章:

c# - ConfigurationManager.OpenExeConfiguration - 是否可以打开和编辑app.config?

php - 将一个静态变量分配给另一个静态变量。为什么会抛出错误?

Java 泛型与类和接口(interface) - 一起

python - "This inspection detects instance attribute definition outside __init__ method"派查姆

c# - W3C、Google Gears 和 Loki 地理定位基于什么?

java - 方法覆盖-C# vs java

java - 不能将 IplImage 与 OpenCV 2.4.4 一起使用

java - 递归 - 选定文件夹中特定文件大小之间的文件数量

java - 在 J2EE 中的上下文监听器中运行线程是否相关?

c# - CORS 在 Web API 中启用,但访问被拒绝