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}
};