在枚举 C++ Cli 中使用保留名称 const
Use reserved name const in enum C++ Cli
我想使用保留名称,在我的枚举中是 "const"。
public enum class EdsAttributeAccessType : int
{
ro,
rw,
wo,
const,
notSpecified
};
是否可以这样做或只是非法使用?我尝试这样做的原因是我正在解析出现此文件的设备描述文件。最简单的方法是像这样解析文件的属性。
文件示例:
...
[2F51sub2]
ParameterName=Program Number 2
ObjectType=0x07
DataType=0x0007
AccessType=rw
DefaultValue=0x0
PDOMapping=0
[2F59]
SubNumber=3
ParameterName=Download Timeout Indicator
ObjectType=0x08
[2F59sub0]
ParameterName=Number of Entries
ObjectType=0x07
DataType=0x0005
AccessType=const
PDOMapping=0
...
那我只需要这样做:
EdsNodeAttribute^ result = FindAttribute(EdsAttributeType::AccessType);
if (result != nullptr){
return (EdsAttributeAccessType)Enum::Parse(EdsAttributeAccessType::typeid, result->Value, true);
}
C++/CLI 语言规范 (Ecma-372) 中的第 9.1.1 章告诉您如何操作。使用 __identifier
关键字:
public enum class EdsAttributeAccessType : int
{
ro,
rw,
wo,
__identifier(const),
notSpecified
};
我想使用保留名称,在我的枚举中是 "const"。
public enum class EdsAttributeAccessType : int
{
ro,
rw,
wo,
const,
notSpecified
};
是否可以这样做或只是非法使用?我尝试这样做的原因是我正在解析出现此文件的设备描述文件。最简单的方法是像这样解析文件的属性。
文件示例:
...
[2F51sub2]
ParameterName=Program Number 2
ObjectType=0x07
DataType=0x0007
AccessType=rw
DefaultValue=0x0
PDOMapping=0
[2F59]
SubNumber=3
ParameterName=Download Timeout Indicator
ObjectType=0x08
[2F59sub0]
ParameterName=Number of Entries
ObjectType=0x07
DataType=0x0005
AccessType=const
PDOMapping=0
...
那我只需要这样做:
EdsNodeAttribute^ result = FindAttribute(EdsAttributeType::AccessType);
if (result != nullptr){
return (EdsAttributeAccessType)Enum::Parse(EdsAttributeAccessType::typeid, result->Value, true);
}
C++/CLI 语言规范 (Ecma-372) 中的第 9.1.1 章告诉您如何操作。使用 __identifier
关键字:
public enum class EdsAttributeAccessType : int
{
ro,
rw,
wo,
__identifier(const),
notSpecified
};