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

问题描述 投票:0回答:2

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

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

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

有没有办法避免写类型

Dictionary<string, ISomething>()
或它的一部分两次?

请注意类型已经被定义为

Dictionary
,而不是
IDictionary
..

c# properties boilerplate
2个回答
3
投票

不,目前 C# 中没有类似的东西。明显的潜在解决方法是允许使用

var
声明字段,但这比听起来更复杂

看到 C# 中出现类似 Java 的“钻石运算符”之类的东西,我会感到有些惊讶,但我之前也曾感到惊讶……

如果您真的想避免 typing,那么我希望 Visual Studio 能够在您键入

new
后帮助完成作业。 (我个人并不认为打字是编码时的主要瓶颈,但是......)


0
投票

以下可以简化,不知道是不是你要找的

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

如下

Using MyCustomDict = Dictionary<string, ISomething>;


private readonly MyCustomDict  _dict = new MyCustomDict();

整个页面都可以使用MyCustomDict代替Dictionary

© www.soinside.com 2019 - 2024. All rights reserved.