不是所有的代码路径都返回一个值(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#了解不多。有没有人能向我解释一下错误的意思,为什么会发生,以及如何修复它们?谢谢你。

不是所有的代码路径都返回一个值(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; }

之后,只需这样使用方法: