這可能是一個非常明顯的邏輯問題,但我似乎無法包裝我的頭爲什麼靜態成員Char.ToUpper(char)應該停止在下面的代碼中存在。靜態成員不存在const func <T,T>
private const Func<Enum, string> getString = vdEnum =>
{
var str = vdEnum.ToString().ToLower().ToCharArray();
str[0] = Char.ToUpper(str[0]);
return new string(str);
};
我的代碼是功能齊全,工作正常,我應該聲明本功能是類的「靜態只讀」的成員,但是我將不勝感激常量的解釋,這將有助於我理解爲什麼上面的代碼應該不在VS 2013中編譯,因爲錯誤:
"Cannot resolve symbol 'ToUpper'
然而,當我將此func更改爲「靜態只讀」它編譯罰款?
非常感謝您提供的任何幫助。
爲什麼不使用擴展方法? – ja72 2014-11-03 17:47:42
@ ja72大概是因爲無論他在做什麼,他都需要一個委託,而不是一個靜態方法。 – Servy 2014-11-03 17:49:10
@ ja72我在這裏錯過的是Linq語句不是編譯時文字,所以Char的靜態擴展並不能解決問題。 – ChocoPanda 2014-11-03 18:02:58