C++ 코드로 변환해야하는 다음 C# 코드가 있습니다. 나는 C++ Enum을 Attributes와 함께 수행하는 방법에 대해 조금은 찾아 보았지만 알아낼 수는 없다.C++과 같은 속성을 가진 enums 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 Error" – bing281