我正在学习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#了解不多。任何人都可以向我解释错误是什么意思,它们为什么会发生以及如何修复它们?谢谢。
答案 0 :(得分:3)
修改您的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
调用静态函数,而需要以您描述的方式调用非/静态(实例函数)。
addNumbers numbers = new addNumbers();
numbers.SomeFunction();
您可以按照以下方式查看。
Classname.SomeStaticVariable = 2;
如上所述,SomeStaticVariable
在任何时候对整个应用程序都是相同的。虽然下面描述的方法仅在内存中存在obj
时才可用。
Classname obj = new ClassName();
obj.SomeVariable = 2;
答案 1 :(得分:0)
使方法AddNumbers(int a,int b)为静态,以便您可以在main方法中使用它。
编辑AddNumbers(int a,int b):
1
之后只需使用这种方法: r = AddNumbers(a,b);