C# 具有基础类型的枚举。无意中返回字符串表示形式
我有以下枚举:C# 具有基础类型的枚举。无意中返回字符串表示形式,c#,enums,C#,Enums,我有以下枚举: public enum BikeType : byte { Road = 0, Mountain = 1 }; 当我尝试将其传递给a时,我检索字节的“字符串”表示形式,而不是数值: string str=string.Format(“Road bike的字节值为{0}”,BikeType.Road) 我想要字节值(0)。我做错了什么 谢谢您需要对int进行强制转换 string str = string.Format("Road
public enum BikeType : byte
{
Road = 0,
Mountain = 1
};
当我尝试将其传递给a时,我检索字节的“字符串”表示形式,而不是数值:
string str=string.Format(“Road bike的字节值为{0}”,BikeType.Road)代码>
我想要字节值(0)。我做错了什么
谢谢您需要对int进行强制转换
string str =
string.Format("Road bike has a byte value of {0}", (int)BikeType.Road);
如果您不进行强制转换,它将在BikeType.Road
上调用ToString
,它将返回Road
您需要对int进行强制转换
string str =
string.Format("Road bike has a byte value of {0}", (int)BikeType.Road);
如果您不强制转换,它将在BikeType.Road
上调用ToString
,它将返回Road
您应该强制转换到byte
string str = string.Format("Road bike has a byte value of {0}", (byte)BikeType.Road);
您应该强制转换为字节
string str = string.Format("Road bike has a byte value of {0}", (byte)BikeType.Road);
事实上,它会调用.ToString()
所有不是字符串本身的东西。@AgentFire是的,它会,但我引用了这个例子:)事实上,它会调用.ToString()
所有不是字符串本身的东西。@AgentFire是的,它会,但我引用了这个例子:)事实上,这是最正确的答案<代码>字节
是基础类型。强制转换为int
将强制将值转换为更大的数据类型,因为枚举是使用byte
作为其基础类型定义的。实际上,这是最正确的答案<代码>字节
是基础类型。强制转换为int
将强制将值转换为更大的数据类型,因为枚举是使用byte
作为其基础类型定义的。