0

我有转换类型的问题。我的 mainForm 保持整数类型的变量。我的表单还有propertyGrid,我在其中实现了带有图像和文本的字段(如组合框)属性。现在我不太明白如何将一种类型转换为另一种类型。首先,我需要将数据从 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);

这种方法有效,但也许你建议我更简单的方法。

4

1 回答 1

1

您可以将图片保存在一个数组中,因此您无需dashIN(dash)编写dashIN[dash](而且您不需要编写 dashIN 函数)。您只需要使用以下内容对其进行一次初始化:

DashPattern[] dashIN = new DashPattern[] { 
   dashPatternList.pic0, dashPatternList.pic1, dashPatternList.pic2 };

相反,类似的东西Array.IndexOf(dashIN,mypic)应该可以工作。

通过这种方式,您可以用数据替换代码,这往往是一件好事,因为它通常更易于管理。例如,如果您想更改虚线模式列表,现在只需更改一行,而不必更改之前两个函数中的代码。另外,现在不可能发生会导致的错误dashOUT(dashIN(dash))!=dash(如果代码中有错误的数字会发生这种情况)。

于 2013-08-02T16:59:36.610 回答