调用我的方法时如何解决此错误?

时间:2019-01-16 10:41:27

标签: c#

正在尝试将方法调用为主方法,我该如何编写它以便不显示错误?

它的主要目的是提示用户输入姓名和年龄,我试图将该方法置于主要方法之下,但它不起作用。

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");
        }
    } 
}

我希望在编译程序时询问姓名和年龄然后输出 “您好,”为您的“年龄”命名”。 其中“名称”和“年龄”是用户输入的值

3 个答案:

答案 0 :(得分:1)

进行了一些更改,根据建议,它确实有效 命名空间方法 {     班级计划     {         静态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();
    }
}

}

答案 1 :(得分:0)

这是我重做的方式,现在可以正常使用了

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();
        }
    }
}

答案 2 :(得分:0)

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

例如,函数 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()不是该函数的适当名称。让我们来看一下 AskPersonalData()

    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() );
        }
    } 

您可以深入了解parameter passing in the MSDN

希望这会有所帮助。