2013-08-02 148 views
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); 

這種方法可行,但也許你建議我更簡單的方法。

回答

1

您可以將圖片保存在一個數組中,而不是dashIN(dash),您會寫dashIN[dash](並且您不需要編寫dashIN函數)。你只需要像這樣的東西一旦初始化:

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

在倒,像Array.IndexOf(dashIN,mypic)應該工作。

這樣你用數據替換代碼,這往往是一件好事,因爲它通常更容易管理。例如,如果您想更改短劃線模式列表,則只需更改一行,而不必先更改兩個函數中的代碼。此外,現在不可能產生會導致dashOUT(dashIN(dash))!=dash的錯誤(如果代碼中存在錯誤的數字,就會發生這種錯誤)。

+0

好吧,我用myDash []與dashPatternList的集合。我可以用這種方法輸入。但我不能用它輸出。當我使用myDash。我沒有IndexOf。我連接System.Collections。但沒有看到 – mit

+0

我的不好,它是Array.IndexOf(dashIN,mypic)。我正在修復答案。 – redtuna

+0

坦克,一切正常!也許你可以幫助我:http://stackoverflow.com/questions/18022665/propertygrid-change-size-of-image-text-field。 – mit

相關問題