“;;预计“;设置数组值时出错

本文关键字:出错 设置 预计 数组 | 更新日期: 2023-09-27 17:49:38

string[] aryProp = { "Name", button.Name };
//ListViewItem lvi = new ListViewItem(aryProp);
aryProp={ "Width" , button.Width.ToString() };

";"预期"(第3行)为什么我得到这个错误?

编辑:@jon, @David, @Grant:谢谢你的帮助,但是我为什么要用不同的语法呢?这是不是有点不合逻辑?

“;;预计“;设置数组值时出错

为什么我得到这个错误?

因为虽然您的语法对变量声明中的初始化是有效的,但对普通赋值是无效的。你可以使用:

aryProp = new[] { "Width" , button.Width.ToString() };

或:

aryProp = new string[] { "Width" , button.Width.ToString() };

在规范术语中,{ ... }数组初始化器,而new string[] { ... }数组创建表达式(当然,其中包括数组初始化器)。数组初始化器不是一个可以用作值的单独表达式;只能在数组创建表达式局部变量初始化器变量初始化器中使用。

在非规范方面:是的,它看起来有点不一致,但我怀疑允许aryProp = { ... }无处不在会有重大问题,但允许它声明是很好的…

您使用的是一维数组,在您的情况下,我怀疑您应该使用二维数组或像这样的字典:

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