私はC++コードに変換する必要がある次のC#コードを持っています。私は属性を持つC++ Enumsのやり方を少し調べたが、それを理解することはできない。C++のような属性を持つC++のenums
基本的に、属性を持つenumを行うC++の次の単純化されたC#コードを表現する方法が必要です。
C#コード:
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;
とどのように私は列挙型を使用して、構造体の値を呼び出しますので、もし:
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
}
これは、次のように行われていませんか?
経由で列挙型をこの属性を取得することができC++では何も意味しないので、あなたが何をしたいのかを説明しなければなりません。 –
@PeteBeckerあなたのrepsonseありがとう。私は、C++で列挙型を使用して、Error = 0などの基本を表現する必要がありますが、列挙型エラーに対しては、そこからアクセスできるより多くの属性を配置する必要があります。基本的にはError.PSNNumberName = "0 Error" – bing281