在 C# 中初始化集合属性时避免样板代码

Avoid boilerplate code when initializing collection properties in c#

有没有办法避免在c#中初始化属性(或字段)时写两次完全相同的类型? (类似于 Java 中的菱形运算符会做..)

例如,假设我有这个代码:

private readonly Dictionary<string, ISomething> _dict = 
                  new Dictionary<string, ISomething>();

有没有办法避免将类型 Dictionary<string, ISomething>() 或其中的一部分写两次?

请注意类型已经被定义为Dictionary,而不是IDictionary..

不,目前 C# 中没有类似的东西。明显的潜在解决方法是允许使用 var 声明字段,但那是 more complicated than it may sound.

如果看到像 Java 的 "diamond operator" 这样的东西出现在 C# 中,我会感到有些惊讶,但我以前也很惊讶...

如果您真的想避免 键入 那么我希望 Visual Studio 在您键入 new 后帮助完成作业. (我个人并不认为打字是编码时的主要瓶颈,但是...)