-5

我是 c# 新手,但我正在尝试创建一个基本程序,该程序可以使用添加数字的函数(这只是练习,我知道它效率低下。

        {
            int AddNumbers(int num1, int num2) //Here's where the error comes
            {
                int result = num1 + num2;
                return result;
            }

            int num1 = 10;

            int num2 = 20;

            AddNumbers(num1, num2);

但是,当我尝试它时,它说“无法在此范围内声明名为 'num1' 的本地参数,因为该名称在封闭的本地范围中用于定义本地或参数”。我认为这是因为我在调用函数时声明了变量,但我不知道如何修复它。

谢谢你的帮助!

编辑:为了清楚起见,函数后面的数字是我想在函数中添加的数字

4

3 回答 3

0

我猜您正在尝试创建一种添加数字的方法。如果要制作方法,则需要在 Main 代码之外制作方法。

public static int AddNumbers(int num1, int num2)
{
    int sum;
    sum = num1 + num2;
    return sum;
}
static void Main(string[] args)
{
    int a = 10;
    int b = 20;
    Console.WriteLine($"a = {a}, b = {b}");
//First way to control the string: put $ infront of the string, and write code in the {})
    Console.WriteLine("a + b = {0}", AddNumbers(a, b));
//Second way to control the string: put {} and number (start with 0) and write code after comma
}

如果你这样写,你会得到一个答案

a = 10, b = 20
a + b = 30

因为public static int AddNumbers(int num1, int num2) 你还不必考虑public static。在 的位置int,您可以放置​​另一个变量,例如string, long, double。对于这种情况,你必须return (various you put);在最后。如果你放了void,你就不用放return了,你想要的东西都会在方法中完成。

于 2020-02-23T16:40:07.300 回答
0

本地方法可以访问父块中的所有内容。这就是为什么您不能多次定义同一个变量名的原因。试试这个。

{
    int num1;
    int num2;

    int AddNumbers(int left, int right) => left + right;

    AddNumbers(num1, num2);
}

这里也有一个指南:https ://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/local-functions

于 2020-02-23T16:28:55.127 回答
-3

欢迎来到 SO。

如您所知,您不能在方法中使用相同的变量名,这就是您所需要的

     {
        int AddNumbers(int num1, int num2) //Here's where the error comes
        {
            int result = num1 + num2;
            return result;
        }

        int num2 = 10;

        int num3 = 20;

        AddNumbers(num2, num3);

    }

你可以有这样的东西:

class Program
{
    int p = 0;
  public  static void Main(string[] args)
    {
        int num1 = 10;
        int num2 = 20;           
     int num =  Method1(num1,num2);
     Console.WriteLine(num);
    }

    public static int Method1(int num1, int num2)
    {
        p = num1 + num2;
        return p;
    }      
}
于 2020-02-23T16:02:21.997 回答