繁体   English   中英

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

[英]How do i fix this error when calling my Method?

我正在尝试调用一个方法到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");
        }
    } 
}

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

根据建议进行了一些更改,使其在名称空间中起作用。方法{类Program {静态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();
    }
}

}

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

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()不是该函数的适当名称。 让我们来看看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() );
        }
    } 

您可以深入了解MSDN中的参数传递

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM