7
我有一个枚举,其成员具有相同的值,但是当我试图将它们打印为字符串时,我期望看到它使用第一个定义的值,即,对于Buy
和Bid
,它打印Buy
,对于Sell
和Ask
它打印Sell
,但测试显示它看起来是随机选择的,因为它既不是第一个也不是最后一个值。那为什么这种不一致呢?为什么Enum字符串值不一致?
using System;
public enum OrderType
{
Buy,
Bid = Buy,
Sell,
Ask = Sell
}
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
OrderType o = OrderType.Buy;
Console.WriteLine("{0}: {1}", (int)o, o);
OrderType o2 = OrderType.Bid;
Console.WriteLine("{0}: {1}", (int)o2, o2);
OrderType o3 = OrderType.Sell;
Console.WriteLine("{0}: {1}", (int)o3, o3);
OrderType o4 = OrderType.Ask;
Console.WriteLine("{0}: {1}", (int)o4, o4);
}
}
输出:
Buy: 0 - Bid
Bid: 0 - Bid
Sell: 1 - Sell
Ask: 1 - Sell
你问你为什么总是看到“出价”和“出售”,或者你在不同的运行中得到不同的答案吗? –
我的迫切问题是为什么它不是('买'和'卖')或('出价'和'问'),而是它们混合在一起。另外,我在不同的跑步中看不到不同的答案,我不确定是否没有足够的时间进行测试。 – fluter
它在调用者的注意事项中提到:https://msdn.microsoft.com/en-us/library/16c1xs4z.aspx#Remarks – Slai