簡體   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