string[] aryProp = { "Name", button.Name };
//ListViewItem lvi = new ListViewItem(aryProp);
aryProp={ "Width" , button.Width.ToString() };
" ;预期" (第3行) 为什么我会收到此错误?
编辑: @ jon,@ David,@ Grant:感谢您的帮助,但为什么我要使用不同的语法?这不合逻辑吗?
答案 0 :(得分:5)
为什么我收到此错误?
因为虽然您的语法对于变量声明中的初始化有效,但 对于普通赋值有效。您可以使用:
aryProp = new[] { "Width" , button.Width.ToString() };
或者:
aryProp = new string[] { "Width" , button.Width.ToString() };
在规范术语中,{ ... }
是 array-initializer ,而new string[] { ... }
是 array-creation-expression (其中包含 array-initializer ,当然)。 array-initializer 不是可以用作值的单独表达式;它只能用于 array-creation-expression , local-variable-initializer 或 variable-initializer 。
在非规范术语中:是的,它看起来有些不一致,但我怀疑在任何地方都会有aryProp = { ... }
的重大问题,但允许它进行声明很好......
答案 1 :(得分:3)
您正在使用一维数组,在您的情况下我怀疑您应该使用二维或字典:
var aryProp = new Dictionary<string, string>();
aryProp.Add("Name", button.Name);
aryProp.Add("Width", button.Width.ToString());
foreach (var element in aryProp)
{
Console.WriteLine(element.Key + " " + element.Value);
}