c#在哪里添加一个方法

本文关键字:一个 方法 在哪里 添加 | 更新日期: 2023-09-27 18:04:13

我是c#新手,一天前才开始学习。我必须做一个简单的c#数据库,包括音乐专辑等。我得到的问题是,我不能调用我刚刚做的方法,谁能帮我把这个方法包括在main?

void addnew()
        {
            int ID = currid;
            string AlbNm;
            string Art;
            string RelDstring;
            int RelD;
            string TrAmnstring;
            int TrAmn;
            string Loc;
            int Rat;
            int ratswitch;
            string ratswitchstring;
            Console.Clear();
            Console.WriteLine("Podaj nazwe albumu");
            AlbNm = Console.ReadLine();
            Console.WriteLine("Podaj nazwe wykonawcy");
            Art = Console.ReadLine();
            Console.WriteLine("Podaj rok wydania");
            RelDstring = Console.ReadLine();
            bool ifintreld = int.TryParse(RelDstring, out RelD);
            bool correctyear = RelD < 2014 && RelD > 1900;
            while (ifintreld == false)
            {
                Console.WriteLine("Podano bledny rok wydania, uzyj liczb calkowitych.");
                RelDstring = Console.ReadLine();
            }
            RelD = Convert.ToInt32(RelDstring);
            while (correctyear == false)
            {
            Console.WriteLine("Podano bledny rok wydania, uzyj daty z zakresu 1900-2014");
            RelDstring = Console.ReadLine();
            while (ifintreld == false)
            {
                Console.WriteLine("Podano bledny rok wydania, uzyj liczb calkowitych.");
                RelDstring = Console.ReadLine();
            }
            RelD = Convert.ToInt32(RelDstring);
            }
            Console.WriteLine("Podaj ilosc utworow");
            TrAmnstring = Console.ReadLine();
            bool ifinttramn = int.TryParse(TrAmnstring, out TrAmn);
            while (ifinttramn == false)
            {
                Console.WriteLine("Podano bledna liczbe utworow, uzyj liczb calkowitych.");
                TrAmnstring = Console.ReadLine();
            }
            RelD = Convert.ToInt32(RelDstring);
            Console.WriteLine("Podaj sciezke do pliku");
            Loc = Console.ReadLine();
            Console.WriteLine("Podaj ocene [1-5]");
            ratswitchstring = Console.ReadLine();
            bool ifintrat = int.TryParse(ratswitchstring, out ratswitch);
            while (ifintrat == false)
            {
                Console.WriteLine("Podano bledna ocene, uzyj liczb calkowitych z zakresu 1-5.");
                ratswitchstring = Console.ReadLine();
            }
            ratswitch = Convert.ToInt32(ratswitchstring);
            while (ratswitch != 1 || ratswitch != 2 || ratswitch != 3 || ratswitch != 4 || ratswitch != 5)
            {
                Console.WriteLine("Podano bledna ocene, uzyj liczb calkowitych z zakresu 1-5.");
                ratswitchstring = Console.ReadLine();
                while (ifintrat == false)
                {
                    Console.WriteLine("Podano bledna ocene, uzyj liczb calkowitych z zakresu 1-5.");
                    ratswitchstring = Console.ReadLine();
                }
            }
            Rat = ratswitch;
         }

VS在静态main中调用非静态方法,但是有了currid和currid++,它不能是静态的(至少我认为是这样;p)有人能告诉我如何在我的控制台应用程序中运行这个方法吗?

c#在哪里添加一个方法

我假设这都是在一个单一的"程序"类。要解决"静态"问题,只需创建该类(或addnew所在的任何类)的实例:

   var p = new Program();
   p.addnew();

It 可以使currid变为静态;唯一的缺点是 Program的所有实例将使用相同的currid变量。因为这只是一个学习练习,所以无论如何都没关系。

一种解决方案是创建该方法所在的类的实例。如果这个类叫做TestClass,你可以这样做:

new TestClass().addnew();

看起来您正在从静态方法调用非静态方法如果你能创建这个类的实例你就能把这个方法作为属性放到main中

如果你的类名是Program,你可以在main中使用如下的非静态函数

    static void Main(string[] args)
    {
        Program abc = new Program();
        abc.addnew();
    }

为了在Main方法中使用它们,您必须将所有变量和方法设置为静态,或者创建一个新类并在Main方法中使用对象。