避免类成员初始化程序中的类型重复?

时间:2009-07-22 20:56:28

标签: c# refactoring

有没有办法避免在类成员的这种声明中重复类型?

Dictionary<string, int> myDict = new Dictionary<string, int>();

3 个答案:

答案 0 :(得分:3)

不,您只能将var用于本地变量。基本上你会被重复所困扰,我很害怕。

Eric Lippert有一个很棒的blog post on this


有趣的注意事项:Java会根据您尝试将分配给的内容执行隐式输入和反向输入。这意味着这是合法的:

// Note: This is Java, not C#!
class CollectionHelpers
{
    public static <T> List<T> newList() 
    {
        return new ArrayList<T>();
    }
}

// In another class (doesn't have to be static)
static List<String> names = CollectionHelpers.newList();

答案 1 :(得分:2)

当然 - 使用VB.NET。 ;)

myDict as New Dictionary(Of String, Integer)()

答案 2 :(得分:-2)

虽然它与问题没有直接关系,但有些人可能会对使用集合初始化在C#3中执行此操作感兴趣:

var myDict = new Dictionary<string, int>()
{
        { "one", 1 },
        { "two", 2 },
        { "three", 3}
};