有没有办法避免在类成员的这种声明中重复类型?
Dictionary<string, int> myDict = new Dictionary<string, int>();
答案 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}
};