C# 只运行 main() class

C# only runs main() class

namespace ConsoleApp5
{
class Program
{
    private static MySqlConnection connection;
    private static string server;
    private static string database;
    private static string uid;
    private static string password;


    public static void Main(string[] args)
    {

        server = "localhost";
        database = "database";
        uid = "domica";
        password = "domica";
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" +
        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

        connection = new MySqlConnection(connectionString);
        connection.Open();
    }
    public static void Insert()
    {
        Console.Write("Ukucaj nesto:");
        var kucaj = Console.ReadLine();
        string query = "INSERT INTO table1 (Ci) VALUES (@tt);";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.Parameters.AddWithValue("@tt", kucaj);
        cmd.ExecuteNonQuery();
    }

  }
}

那是我的代码,我有一个关于它的简单问题。该代码不起作用。 Main() 部分有效,但 Insert() class 永远不会 运行。如果我将所有内容放在 Main() class 中,它就可以正常工作,但我不希望这样。我尝试将其切换为构建为 class 库,而不是控制台应用程序,但我只是收到一条错误消息,说那是不可能的。谢谢

您需要在 Main 方法中调用 Insert() 方法。

namespace ConsoleApp5
{
    class Program
    {
        private static MySqlConnection connection;
        private static string server;
        private static string database;
        private static string uid;
        private static string password;

        public static void Main(string[] args)
        {

            server = "localhost";
            database = "database";
            uid = "domica";
            password = "domica";
            string connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
            database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            connection = new MySqlConnection(connectionString);
            connection.Open();

            Insert();
        }
        public static void Insert()
        {
            Console.Write("Ukucaj nesto:");
            var kucaj = Console.ReadLine();
            string query = "INSERT INTO table1 (Ci) VALUES (@tt);";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@tt", kucaj);
            cmd.ExecuteNonQuery();
        }

      }
}

每次都必须调用每个新函数。在 private static void Main(string[] args) { ... } 函数中的 connection.Open(); 之后调用 Insert()

祝你好运

好的,我想是时候进行一些解释了。首先,一些术语。 MainInsert 被称为函数或方法。你的程序中唯一的 class 是 Program.

什么是函数?

函数是(相对)小的代码块,用于更好地组织程序。当您需要重复执行相同的操作(或非常相似的操作)时,可以重复使用它们。他们的行为可以使用参数略微改变和定制以满足特定需求。每一个函数都必须被调用(invoked)才能使它运行。 Main也是一种方法。

为什么 Main 运行 没有调用它?

Main 被称为程序的入口点,因为它是程序自动调用的唯一函数。在 Main 中,您可以调用您定义的其他函数。

在哪里可以调用函数?

您可以在另一个函数中调用一个函数。您甚至可以在其自身内部调用一个函数(称为递归的过程),只需确保创建一个退出条件,这样您就不会出现无限循环。

我可以调用Main?

当然可以。但请注意,这意味着重新执行它。

我应该调用Main吗?

这可能是一个讨论主题。从我的角度来看,你永远不应该调用 Main,因为它非常危险。您可以很容易地创建一个无限循环,并且很难避免这种情况。而且,它并没有真正给你带来很大的优势。老实说,我从来没有见过重新调用Main.

的程序

希望您现在明白了,以后可以提出更多有用的问题。