我想大家都看過類似的代碼:使用屬性以減少枚舉枚舉映射和枚舉/常量行動開關statments
public void Server2ClientEnumConvert(ServerEnum server)
{
switch(server)
{
case ServerEnum.One:
return ClientEnum.ABC
//And so on.
相反,這個壞我們可以做財產以後類似的:
public enum ServerEnum
{
[Enum2Enum(ClientEnum.ABC)]
One,
}
現在我們可以使用反射來通過ServerEnum翻錄並從枚舉聲明本身獲取轉換映射。
我在這裏遇到的問題是在Enum2Enum屬性的聲明中。
這個工作,但用Enum e替換對象o不行。我不想將對象傳遞給構造函數,只能傳入其他枚舉。
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(object o){}
}
這不能編譯。
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(Enum e){}
}
是否有編譯錯誤的原因?我還能怎樣傳遞到除了地圖所需的信息:
EnumtoEnumAttribute(Type dest, string enumString)
這似乎太冗長,但如果它是唯一的出路,然後我想我會用它。
你得到了什麼編譯錯誤?哪裏? – 2008-12-26 06:55:35