过于简洁的泛型类型的快捷方式

本文关键字:泛型类型 快捷方式 简洁 于简洁 | 更新日期: 2023-09-27 18:15:36

我想把Dictionary的一个参数传递给一个方法。

public static void Method(Dictionary<string, string> hash)

我很想使用内联集合初始化式

这是不合法的

Method({{"Foo", "Bar"}, {"Bing", "Bong"}})

也不是

Method(new {{"Foo", "Bar"}, {"Bing", "Bong"}})
这是

// outside the class    
using D = System.Collections.Generic.Dictionary<string, string>;
// calling with the type alias
Method(new D {{"Foo", "Bar"}, {"Bing", "Bong"}})

// once in a library somewhere
class SD : System.Collections.Generic.Dictionary<string, string> {}
// calling with the class
Method(new SD {{"Foo", "Bar"}, {"Bing", "Bong"}})

你有一个很好的快捷方式像这样,我不知道解决我的类型集合初始化?

过于简洁的泛型类型的快捷方式

不,你不能按你想要的方式声明字典。在c# 6中,有一个稍微漂亮一点的Dictionary初始化语法,但它并不是你想要的:

using D = System.Collections.Generic.Dictionary<string, string>;
//...
Method(new D { ["Foo"] = "Bar", ["Bing"] = "Bong" });