【发布时间】:2013-07-12 13:49:45
【问题描述】:
使用此代码在 c# 中出现以下错误 “并非所有代码路径都返回值” 我正在尝试使用它创建一种编程语言。 非常感谢任何帮助。
private Expr ParseExpr()
{
if (this.index == this.tokens.Count)
{
throw new System.Exception("expected expression, got EOF");
}
if (this.tokens[this.index] is Text.StringBuilder)
{
string Value = ((Text.StringBuilder)this.tokens[this.index++]).ToString();
StringLiteral StringLiteral = new StringLiteral();
StringLiteral.Value = Value;
}
else if (this.tokens[this.index] is int)
{
int intvalue = (int)this.tokens[this.index++];
IntLiteral intliteral = new IntLiteral();
intliteral.Value = intvalue;
return intliteral;
}
else if (this.tokens[this.index] is string)
{
string Ident = (string)this.tokens[this.index++];
Variable var = new Variable();
var.Ident = Ident;
return var;
}
else
{
throw new System.Exception("expected string literal, int literal, or variable");
}
}
【问题讨论】:
-
我想你可能想重命名你的
Variable var。 var 是一些最新版本的 C# 中的保留关键字。 -
不要忘记在函数结束时返回值
标签: c# .net function stringbuilder