Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 避免类成员初始值设定项中的类型重复?_C#_Refactoring - Fatal编程技术网

C# 避免类成员初始值设定项中的类型重复?

C# 避免类成员初始值设定项中的类型重复?,c#,refactoring,C#,Refactoring,有没有办法避免类成员的这种声明中重复类型 Dictionary<string, int> myDict = new Dictionary<string, int>(); Dictionary myDict=newdictionary(); 否,只能对局部变量使用var。我担心,基本上你一直在重复 埃里克·利珀特有一个伟大的梦想 值得注意的一点是:Java以相反的方式执行隐式类型和类型推断,这取决于您试图分配给什么。这意味着这是合法的: // Note: This is

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

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

否,只能对局部变量使用
var
。我担心,基本上你一直在重复

埃里克·利珀特有一个伟大的梦想


值得注意的一点是: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();
//注意:这是Java,不是C#!
类集合助手
{
公共静态列表newList()
{
返回新的ArrayList();
}
}
//在另一个类中(不必是静态的)
静态列表名称=CollectionHelpers.newList();
当然可以-使用VB.NET


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

var myDict = new Dictionary<string, int>()
{
        { "one", 1 },
        { "two", 2 },
        { "three", 3}
};
var myDict=newdictionary()
{
{“一”,1},
{“两个”,2},
{“三”,3}
};

这对于op要求的班级成员来说是不可能的。我只是认为这对一些人可能有用,不管怎样。呵呵。@Dan,这里的问题不是对象初始值设定项列表。这个功能非常棒。:)问题是你不能对类成员使用
var
关键字-用字典类型替换它,你的文章将既有趣又正确。:)
var myDict = new Dictionary<string, int>()
{
        { "one", 1 },
        { "two", 2 },
        { "three", 3}
};