多维数组位置作为c#中的对象名

时间:2017-05-22 13:27:33

标签: c# winforms multidimensional-array

我有一个多维数组,我正在走过......这就像我想要的那样。 但我想使用位置来更改我创建的面板的文本(Windows窗体)。例如:我有[0,9]的位置,并且有一个' M' (char)现在我想把这个M写成Panel p009的文本。 像这样:

if (gameView[j,i] == 'M')
                    {
                        //p + j + 0 + i.Text = 'M';
                    }

1 个答案:

答案 0 :(得分:1)

如果您在课程级别声明了 WebDriverWait wait=new WebDriverWait(driver, 90); wait.untill(ExpectedConditions.visibilityOf(driver.findElement(By.className("close"))); ,则可以使用Reflection来获取它们:

Panel

但正如评论中所提到的,更好的解决方案是声明第二个数组来保存它们:

// Get the type handle of a specified class.
Type myType = typeof(Form1);

// Get the fields of the specified class.
FieldInfo[] myField = myType.GetFields();

FieldInfo theRightField = myField
    .Where(f => f.Name.Equals(
        String.Format("p{0}{1:u2}", j, i)
    )).First();

Panel p = (Panel)theRightField.GetValue(this);