将一种类型转换为另一种类型

本文关键字:类型转换 另一种 类型 一种 | 更新日期: 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的错误(如果代码中有错误的数字,就会发生这种情况)。

相关文章: