Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调用方法时如何修复此错误?_C# - Fatal编程技术网

C# 调用方法时如何修复此错误?

C# 调用方法时如何修复此错误?,c#,C#,如果我试图将一个方法调用到main方法,如何编写它以使其不显示错误 它主要是提示用户输入姓名和年龄,我曾尝试将该方法置于main方法下,但它不起作用 namespace Methodss { class Program { static void Main(string[] args) { SayHi(String Name, int Age) } static void SayHi(Stri

如果我试图将一个方法调用到main方法,如何编写它以使其不显示错误

它主要是提示用户输入姓名和年龄,我曾尝试将该方法置于main方法下,但它不起作用

namespace Methodss
{
    class Program
    {
        static void Main(string[] args)
        {
            SayHi(String Name, int Age)
        }
        static void SayHi(String Name, int Age)
        {
            Name = Console.ReadLine();
            Console.WriteLine("Enter Your Name");
            Console.ReadKey();
            Age = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter Your Age");
            Console.ReadKey();
            Console.ReadLine();
            Console.WriteLine("Hello User"+Name+"you are"+ Age+" Years old");
        }
    } 
}
我希望在编译程序时请求输入名称和年龄,然后输出 “你好”的名字“你的年龄”的年龄。
其中,Name和Age是用户输入的值,根据建议做了一些更改,它起了作用 名称空间方法 { 班级计划 { 静态void Main(字符串[]参数)


}

这是我重做它的方式,它现在按预期工作

namespace Methodss
{
    class Program
    {
        static void Main(string[] args)
        {
            SayHi();
        }

        static void SayHi()
        {
            Console.WriteLine("Enter Your Name");
            var name=Console.ReadLine();
            Console.WriteLine("Enter Your Age");
            int age = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Hello "+"\t" + name + " "+"you are"+" " + age + " "+" Years old");
            Console.ReadLine();
        }
    }
}

主要错误是将实际参数列表与形式参数列表混淆。形式参数包含有关参数类型的信息,而实际参数是变量或表达式

例如,函数MultiplyBy2()有一个类型为double的形式参数,但可以用表达式或变量调用

  class Main {
    static double MultiplyBy2(double x)
    {
        return 2 * x;
    }

    static void Main(String[] args)
    {
        int x = 5;

        Console.WriteLine( MultiplyBy2( 6 ) );     // 12
        Console.WriteLine( MultiplyBy2( x ) );     // 10
    }
  }
此外,您似乎对返回姓名和年龄感兴趣,而不是实际传递。我猜您将从SayHi()获得姓名和年龄,并从Main()实际问候

返回多个值并不简单,因此我们可以使用out来指示这些变量将使用SayHi()函数中设置的值进行修改

这也意味着SayHi()不是该函数的合适名称

你可以更深入地了解


希望这能有所帮助。

我不清楚为什么在方法中有参数,当你要在方法中询问用户的姓名和年龄时。你在调用方法时不能提供这些值,因为你还没有这些值。
SayHi
的实现看起来像一个“按正确的顺序排列”游戏中,在调用
ReadLine
2件可以使代码更清晰的事情之前,你必须请求name/age:声明并初始化同一行上的变量:
string name=Console.ReadLine();
int age=Convert.ToInt32(Console.ReadLine())使用字符串插值:
Console.WriteLine($“Hello\t{Name}你是{Age}岁”);
  class Main {
    static double MultiplyBy2(double x)
    {
        return 2 * x;
    }

    static void Main(String[] args)
    {
        int x = 5;

        Console.WriteLine( MultiplyBy2( 6 ) );     // 12
        Console.WriteLine( MultiplyBy2( x ) );     // 10
    }
  }
    class Program
    {
        static void Main(string[] args)
        {
            string name;
            int age;

            AskPersonalData( out name, out age );
            Console.WriteLine( "Hello User" + name + "you are" + age + " Years old" );
        }

        static void AskPersonalData(out string name, out int age)
        {
            Console.Write( "Enter Your Name: " );
            name = Console.ReadLine();

            Console.Write( "Enter Your Age: " );
            age = Convert.ToInt32( Console.ReadLine() );
        }
    }