【发布时间】:2017-01-22 21:38:42
【问题描述】:
C#:代码部分:
class ConstValues
{
public const int NULL=1;
}
class Example
{
private enum FormatFunction
{
Date,
Unknown
}
...
FormatFunction returnValue = fn();
...
现在我有两种情况。
当我使用这种方式将返回码与值进行比较时
if (!returnValue.Equals(ConstValues.NULL))
{
...
我没有收到编译时错误(并且代码无法按预期工作,因为这是我错过的一个错误)。
但是当我换成
if (returnValue != ConstValues.NULL)
{
...
我得到一个编译时错误并发现我犯的错误。
我知道枚举的底层结构是 int,但我宁愿在使用 Equals 时也遇到编译时错误。
为什么第一种方式通过而第二种方式不通过?
【问题讨论】:
-
还有一个方法 Enum.IsDefined 我认为它可能对你有用。 msdn.microsoft.com/en-us/library/…
标签: c# enums compare constants