爲什麼是這樣的工作:可選參數:編譯時間常數問題
public int DoesEmailAddressExistsExcludingEmailAddressID(
string emailAddress,
string invitationCode,
int emailAddressID = 0,
int For = (int) Enums.FOR.AC)
而其中AC是枚舉這並不
public int DoesEmailAddressExistsExcludingEmailAddressID(
string emailAddress,
string invitationCode,
int emailAddressID = 0,
int For = Enums.FOR.AC.GetHashCode())
。運行時枚舉的哈希碼可以改變嗎?
GetHashCode()需要執行代碼。這意味着它不是編譯時間常量。 –
順便說一句,此問題的解決方案是使用傳統的C#重載方法,而不是使用默認參數。 – phoog
我強烈建議不要使用'For'作爲變量名稱。第一個例子'as as'不會真正編譯。 –