【发布时间】:2011-09-25 12:30:37
【问题描述】:
public static int Test(int n)
{
if (n < 0) return 1;
if (n == 0) return 2;
if (n > 0) return 3;
}
编译器(Visual Studio 2010,C# 4.0)说“并非所有代码路径都返回值”。为什么?
【问题讨论】:
-
您好,我编辑了您的帖子以显示所有代码。在 StackOverflow 中,您只需 1. 使用四个空格缩进任何代码,或者 2. 完成后突出显示您的代码并单击
{}按钮。 (我想你的代码被<和>字符赶上了。) -
为什么n和0之间的运算符不见了?
-
为什么要麻烦最后一个比较(n>0)?如果达到那个点,它显然会 > 0,所以跳过冗余比较,如果达到那个点就返回 3。
-
另外,我想你理论上可以在函数期间改变'n'的值,即使你不这样做,编译器也不能保证?...
标签: c# .net if-statement return