我遇到转换类型的问题。我的mainForm在整数类型中保持变量。另外我的表单有propertyGrid,我用Image& amp;中心实现了字段的属性(比如组合框)。文本。现在我不明白如何将一种类型转换为另一种类型。首先,我需要将数据从int转换为myProp,然后反之亦然。 这里设置propertyGrid:
public dashPatternList DashPattern
{
get { return dashPattern; }
set { dashPattern = value; }
}
在这里,我尝试用其他方法实现我的问题:
private dashPatternList dashIN(int dash)
{
dashPatternList ds = dashPatternList.pic0;
if (dash == 1) ds = dashPatternList.pic1;
if (dash == 2) ds = dashPatternList.pic2;
return ds;
}
private int dashOUT(dashPatternList dash)
{
int i = 0;
if (dash == dashPatternList.pic1) i = 1;
if (dash == dashPatternList.pic2) i = 2;
return i;
}
并称之为:
pData.DashPattern = dashIN(dashPattern);
dashPattern = dashOUT(pData.DashPattern);
这种方法有效,但也许你建议我更方便。
答案 0 :(得分:1)
您可以将图片保存在一个数组中,因此您需要dashIN(dash)
而不是dashIN[dash]
(并且您不需要编写dashIN函数)。你只需要用这样的东西初始化它一次:
DashPattern[] dashIN = new DashPattern[] {
dashPatternList.pic0, dashPatternList.pic1, dashPatternList.pic2 };
反过来说,像Array.IndexOf(dashIN,mypic)
这样的东西应该有效。
这样您就可以用数据替换代码,这往往是一件好事,因为它通常更容易管理。例如,如果要更改短划线模式列表,则只需更改一行,而不必更早地更改两个函数中的代码。此外,现在发生导致dashOUT(dashIN(dash))!=dash
的错误是不可能的(如果代码中的数字错误,就会发生错误。)