我有以下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