我想初始化ValueTuples的静态只读数组,我想使用此SO answer中的方法:
var tupleList = new (int Index, string Name)[]
{
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
但是它不适用于静态成员,我必须声明tupleList的类型。我可以像这样的元组来做,但是我不知道如何作为ValueTuple来做:
static readonly Tuple<uint, string>[] tupleList= new Tuple<uint, string>[]
{
new Tuple<uint, string>(0x1, "string1"),
...
};
但是,如果我能找到正确的类型,我更喜欢使用更简洁的格式,到目前为止,我尝试了很多没有运气的类型。
答案 0 :(得分:0)
您不能使用“ cleaner” var
(隐式,但仍然是强类型)类型,但是可以按照注释者的建议初始化一个元组。您可以避免的“最干净”是这样的,它在数组上使用类型推断:
(int Index, string Name)[] tupleList = {
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
至少,这样可以避免两次指定类型,这是人们使用var
的原因之一。
在声明成员变量时,该语言不支持使用var
。静态字段和实例字段都是如此。
有一个historic reason。这并不是说如果您提出更改,并且由社区审核,则无法更改。