【发布时间】:2012-09-04 14:57:01
【问题描述】:
为什么会这样:
public int DoesEmailAddressExistsExcludingEmailAddressID(
string emailAddress,
string invitationCode,
int emailAddressID = 0,
int For = (int) Enums.FOR.AC)
而这不是
public int DoesEmailAddressExistsExcludingEmailAddressID(
string emailAddress,
string invitationCode,
int emailAddressID = 0,
int For = Enums.FOR.AC.GetHashCode())
其中 AC 是枚举。枚举的哈希码可以在运行时改变吗?
【问题讨论】:
-
GetHashCode() 需要执行代码。这意味着它不是编译时间常数。
-
这个问题的解决方案,顺便说一下,是使用经典的 C# 重载方法,而不是使用默认参数。
-
我强烈建议不要使用
For作为变量名。第一个示例as is实际上不会编译。
标签: c# .net compiler-errors