我试图弄清楚为什么会出现此错误:
switch (token.type.GetName())
{
case PascalTokenType.BEGIN.name: // ERROR: A CONSTANT VALUE IS EXPECTED
{
CompoundStatementParser compoundParser = new CompoundStatementParser(this);
statementNode = compoundParser.parse(token);
break;
}
}
GetName()
并且name
都返回字符串。这是对象的样子:
public static readonly PascalTokenType BEGIN = new PascalTokenType("BEGIN");
我知道我可以通过将其更改为if
语句来解决此问题,但是当它完成后,我将至少有 20 个条件,所以我宁愿不这样做。我想这是因为BEGIN.name
直到运行时才分配?