我有以下C#代碼,我需要將其轉換爲C++代碼。我已經搜索了一些關於如何做C++枚舉的屬性,但無法弄清楚。C++枚舉屬性如C#
基本上我需要一種方法來表示C++中的以下簡化的C#代碼,它將使用屬性枚舉。
C#代碼:
public class PSMNameAttribute : Attribute
{
public string PSMName;
public PSMNameAttribute(string _PSMName) { PSMName = _PSMName; }
}
public class PSMNumberAttribute : Attribute
{
public string PSMNumber;
public PSMNumberAttribute(string _PSMNumber) { PSMNumber = _PSMNumber; }
}
public class PSMNumberNameAttribute : Attribute
{
public string PSMNumberName;
public PSMNumberNameAttribute(string _PSMNumberName) { PSMNumberName = _PSMNumberName; }
}
public enum ShippingMethodsTypes
{
[PSMName("ErrorScriptMed")]
[PSMNumber("-5")]
[PSMNumberName("-5 ErrorScriptMed")]
ErrorScriptMed = -5
,
[PSMName("SpecialHandling")]
[PSMNumber("-1")]
[PSMNumberName("-1 SpecialHandling")]
SpecialHandling = -1
,
[PSMName("Error")]
[PSMNumber("0")]
[PSMNumberName("0 Error")]
Error = 0
}
難道這是這樣做:
enum Category{
unknown = -1, meat, poultry, seafood, dairy, vegetable,fruit, grain, sweet
};
typedef struct {
float calories; // calories
float carbonhydrates; // grams
float fat; // grams
float cholesterol; // grams
float sodium; // grams
float protein; // grams
Category category ;
}Food;
如果是的話我怎麼會叫用枚舉的結構值?
「枚舉與檢索此屬性屬性「並不代表C++中的任何東西,所以你必須解釋你想要做什麼。 –
@PeteBecker謝謝你的repsonse。我需要繼續在C++中使用枚舉來表示Error = 0等基本知識,但對於枚舉錯誤,我需要在其上放置更多屬性,以便從中訪問它。基本上Error.PSNNumberName =「0錯誤」 – bing281