不是所有的代码路径都返回一个值(c#)
本文关键字:一个 返回 路径 代码 | 更新日期: 2023-09-27 18:05:35
我目前正在学习c#,我在这个程序上遇到了麻烦。我正在学习方法和类,我正在编写一个测试程序,将两个数字相加并在控制台中显示它们。我收到以下三个错误:
prog.cs(5,13): error CS0161: `Test.addNumbers(int, int)': not all code paths return a value
prog.cs(16,3): error CS0118: `Test.addNumbers(int, int)' is a `method' but a `type' was expected
prog.cs(17,7): error CS0841: A local variable `numbers' cannot be used before it is declared
Compilation failed: 3 error(s), 0 warnings
下面是我的代码:
using System;
public class Test
{
public int addNumbers(int num1, int num2) {
int result;
result = num1 + num2;
}
public static void Main()
{
int a = 2;
int b = 2;
int r;
addNumbers numbers = new addNumbers();
r = numbers.addNumbers(a, b);
Console.WriteLine(r);
}
}
我已经尝试了我所知道的一切,但正如我所说的,我还在学习,所以我对c#了解不多。有没有人能向我解释一下错误的意思,为什么会发生,以及如何修复它们?谢谢你。
修改您的addNumbers
返回一个值。函数签名表明它返回int
,所以你必须从函数返回int
。
using System;
public class Test
{
public static int addNumbers(int num1, int num2)
{
int result;
result = num1 + num2;
return result;
}
public static void Main()
{
int a = 2;
int b = 2;
int r;
r = addNumbers(a, b);
Console.WriteLine(r);
}
}
编辑:只有在函数不是静态的情况下才需要addNumbers numbers = new addNumbers();
。
静态函数可以用ClassName.FunctonName
调用,而非/Static(实例函数)需要用您描述的方式调用。
addNumbers numbers = new addNumbers();
numbers.SomeFunction();
你可以这样看。
Classname.SomeStaticVariable = 2;
如上所述,SomeStaticVariable
在任何时候对于整个应用程序都是相同的。而下面描述的方法只有在obj
存在于内存中时才可用。
Classname obj = new ClassName();
obj.SomeVariable = 2;
将AddNumbers(int a, int b)方法设置为静态,以便您可以在主方法中使用它。编辑AddNumbers(int a, int b)public int addNumbers(int num1, int num2)
{
return num1 + num2;
}
之后,只需这样使用方法: