2017-03-02 121 views
-1
enum conc 
    { 
     Maia, 
     Porto, 
     Valongo, 
     Gondomar, 
     Gaia, 
     Matosinhos 
    }; 



private string concelho; 

    public string Concelho 
    { 
     get { return concelho; } 
     set { concelho = Enum.IsDefined(typeof(conc), Concelho) ? value : " "; } 
    } 

是不是爲我工作,我是學生,這對我來說是「新」。我的問題是驗證,我做錯了什麼?謝謝已解決 - 檢查字符串值是否在枚舉c#

+0

使用'enum.TryParse'。 – Venky

+1

您正在檢查'Concelho'的_current_值是否有效,而不是您要設置的值。 –

+0

還有一些要記住。說「不起作用」,是相當模糊的。嘗試包含任何錯誤消息,意外結果等,以幫助診斷問題。 – tinstaafl

回答

0

您不能直接將值設置爲concelho字段,因爲它必須首先被解析爲枚舉類型。

public string Concelho 
{ 
    get { return concelho; } 
    set 
    { 
     conc temp; 
     if(Enum.TryParse(value, true, out temp)) 
      cocelho = temp; 
    } 
} 
+0

完美! set { conc temp; if(Enum.TryParse(value,true,out temp)) concelho = Convert.ToString(temp); } 非常感謝,現在我需要了解代碼。 –

+0

我剛剛注意到你的'concelho'變量的類型是'string',你可能想要改變它來輸入'conc'。對於我的工作答案,如果你確實希望它成爲'string',請使用@tinstaafl答案 –

0

您的原始密碼已關閉。你只需要改變Concelhovalue:如此說來

enum conc 
{ 
    Maia, 
    Porto, 
    Valongo, 
    Gondomar, 
    Gaia, 
    Matosinhos 
}; 



private string concelho; 

public string Concelho 
{ 
    get { return concelho; } 
    set { concelho = Enum.IsDefined(typeof(conc), value) ? value : " "; } 
} 

。如果您需要字符串表示形式,您可以簡單地創建類型conc並調用ToString()方法。

public enum conc 
{ 
    Maia, 
    Porto, 
    Valongo, 
    Gondomar, 
    Gaia, 
    Matosinhos 
}; 



private conc concelho; 

public conc Concelho 
{ 
    get { return concelho; } 
    set { concelho = value; } 
}