将一种类型转换为另一种类型
本文关键字:类型转换 另一种 类型 一种 | 更新日期: 2023-09-27 18:25:55
我对转换类型有问题。我的mainForm将变量保持为整数类型。此外,我的表单有propertyGrid,在那里我用Image&文本现在我不太明白如何将一种类型转换为另一种类型。首先,我需要将数据从int转换为myProp,然后反之亦然。此处设置属性网格:
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);
这个方法有效,但也许你建议我用更简单的方法。
您可以将图片保存在一个数组中,因此您可以编写dashIN[dash]
而不是dashIN(dash)
(并且不需要编写dashIN函数)。你只需要用这样的东西初始化一次:
DashPattern[] dashIN = new DashPattern[] {
dashPatternList.pic0, dashPatternList.pic1, dashPatternList.pic2 };
相反,类似Array.IndexOf(dashIN,mypic)
的东西应该起作用。
通过这种方式,您可以用数据替换代码,这往往是一件好事,因为它通常更容易管理。例如,如果您想更改短划线的列表,现在只需要更改一行,而不必更改前面两个函数中的代码。此外,现在不可能出现会导致dashOUT(dashIN(dash))!=dash
的错误(如果代码中有错误的数字,就会发生这种情况)。