-1

我使用 C# 已经有一段时间了,但主要是在 Unity 中。我最近才开始在 Visual Studio 中简单地编写 C# 代码。

我只是在玩用数组实现队列,并对构造函数进行了一些研究。在我的 Queue 类中,我有一个构造函数,它为数组本身设置了一个实例:

public class Queue
{

    int front = 0;
    int rear = -1;
    int size = 0;
    const int maxSize = 5;
    int[] queue;

    public Queue()
    {
        queue = new int[maxSize];
    }

    //rest of class

}

然后在调用创建队列并使用它进行一些测试等的类中,我使用了一个主要方法:

class program
{
    static void Main()
    {
        Queue myQueue = new Queue();
        myQueue.enQueue(1);
        myQueue.enQueue(2);
        myQueue.enQueue(3);
        myQueue.enQueue(4);
        myQueue.enQueue(5);
        myQueue.enQueue(6);
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        myQueue.enQueue(6);
        myQueue.enQueue(7);
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.ReadLine();
    }
}

现在我的问题是这两种方法有什么区别?目前对我来说,它们只是“程序最初运行时调用的方法”,有点像Start()我习惯的 Unity 中的方法。

4

5 回答 5

5

Main() 方法是程序的入口点。一旦创建了类的对象(在您的情况下为队列),就会立即调用构造函数(在您的情况下为队列())。

于 2019-05-21T20:18:34.160 回答
1

这个答案取决于微软的 C# 编程指南 Main() 和命令行参数构造函数

主要方法

Main 方法是 C# 应用程序的入口点。(库和服务不需要 Main 方法作为入口点。)当应用程序启动时,Main 方法是调用的第一个方法。

C# 程序中只能有一个入口点。如果您有多个具有 Main 方法的类,则必须使用 /main 编译器选项来编译程序,以指定将哪个 Main 方法用作入口点。有关详细信息,请参阅/main(C# 编译器选项)。

class TestClass
{
    static void Main(string[] args)
    {
        // Display the number of command line arguments:
        System.Console.WriteLine(args.Length);
    }
}

构造函数

每当创建结构时,都会调用其构造函数。一个类或结构可能有多个接受不同参数的构造函数。构造函数使程序员能够设置默认值、限制实例化并编写灵活且易于阅读的代码。有关更多信息和示例,请参阅使用构造函数实例构造函数

构造函数是一种方法,其名称与其类型的名称相同。它的方法签名只包括方法名和它的参数列表;它不包括返回类型。以下示例显示了名为 Person 的类的构造函数。

public class Person
{
   private string last;
   private string first;
   
   public Person(string lastName, string firstName)
   {
      last = lastName;
      first = firstName;
   }
}
于 2019-05-21T20:36:57.860 回答
0

main 方法或任何其他方法与构造函数之间的主要潜在区别在于,方法用于展示对象的功能,而构造函数用于初始化对象。在您的代码中,您有一个Queue 类一个 Queue 构造函数(构造函数应始终与类同名)以及程序类中的一个main 方法。main 方法是程序开始的地方。在 main 方法中,您已经初始化了 Queue 数据类型的 myQueue。这就是构造函数生效的地方。它初始化一个大小为max_size的新队列, 5 在你的情况下。这是构造函数的唯一功能。但是,主要方法还没有完成。它调用 enQueue 方法,然后在控制台上打印并调用 deQueue 并再次打印,最后读取输出。

于 2019-05-21T20:33:41.500 回答
0
  1. “主”方法始终是静态的,而“构造函数”可以是静态的或非静态的。
  2. 当项目/应用程序首次运行时调用“Main”方法,而每次创建对象(当构造函数为非静态时)或第一次访问静态成员(当构造函数为静态时)时都会调用“构造函数”。
  3. 您可以有多个(重载)构造函数,但不能将多个 Main 方法设置为应用程序/项目的“入口点”。
于 2019-05-21T20:34:58.830 回答
0

没有区别>>让我解释一下...

当用 c# 编写代码并编译它时,编译器只会查看 main 方法。它不会只查看 main 方法中的任何其他函数(方法),所以如果你想创建另一个函数,你需要在 main 方法中调用它让编译器回到这个方法并运行它

构造函数是函数(方法),您在创建对象时调用它..就在创建对象时 For Ex :A obj = new A();

重点:new A();,这里是A()构造函数,创建对象时调用构造函数,构造函数与类同名,调用一次...编译器会为你创建一个,它会是空的,你可以搜索更多关于 Constructor .....

于 2019-12-08T18:24:19.207 回答