这可能是一个非常明显的逻辑问题,但我似乎无法理解为什么静态成员Char.ToUpper(char)应该不再存在于下面的代码中。
private const Func<Enum, string> getString = vdEnum =>
{
var str = vdEnum.ToString().ToLower().ToCharArray();
str[0] = Char.ToUpper(str[0]);
return new string(str);
};
我的代码功能齐全,如果我将此func声明为类的“静态只读”成员,那么我会非常感谢const的解释,这将有助于我理解为什么上面的代码不能在VS中编译2013年因为错误:
“无法解析符号'ToUpper'
然而,当我将此函数更改为“静态只读”时,它编译得很好吗?
提前感谢您提供的任何帮助。
答案 0 :(得分:3)
只能为const
分配编译时文字。您没有分配编译时文字,因此没有机会工作。人们希望得到一个不同的错误信息,但在这种情况下,您提供的代码远远超出了编译器所期望的那样,您不会收到很好的错误消息。正如您已经指出的那样,解决方案是不在此使用const
,而是将其设为只读字段。