C# class without main method

后端 未结 10 523
情话喂你
情话喂你 2021-01-02 02:44

I\'m learning C# and I\'m very new to it, so forgive me for the seemingly stupid question. I have some experience in Java, and I noticed that C# programs also need a m

相关标签:
10条回答
  • 2021-01-02 02:50

    C# application must have at least one class with Main method, so that execution can begin from it. Application can have plenty of classes, but only one class with only one Main method is required.

    C# library does not have to have a Main method.

    0 讨论(0)
  • 2021-01-02 02:50

    You only need a main method when you build an executable assembly (.exe), and you only need it in one class. This method will be the default entry point where execution starts. You don't need a main method when you build your code as a class library (.dll).

    0 讨论(0)
  • 2021-01-02 02:53

    C# class without Main() means, you can compile it as a library (.dll) csc /target:library YourClassFileName.cs or csc /t:library YourClassFileName.cs to make it as YourClassFileName.dll file and then you can use it in another class file which have the Main() method (Entry point)

    csc /reference:YourClassFileName.cs YourMainClassFileName.cs or csc /r:YourClassFileName.cs YourMainClassFileName.cs

    to make an YourMainClassFileName.exe file

    0 讨论(0)
  • 2021-01-02 02:56


    Not all classes need Main method.

    As MSDN States

    The Main method is the entry point of a C# console application or windows application. (Libraries and services do not require a Main method as an entry point.). When the application is started, the Main method is the first method that is invoked.

    There can only be one entry point in a C# program. If you have more than one class that has a Main method, you must compile your program with the /main compiler option to specify which Main method to use as the entry point.


    Only one class need to keep the Main method, the class which acts as entry point of the application.

    The signature of the main method is : static void Main(string[] args) or static void Main() or static int Main(string[] args) or static int Main()

    Check out this link for more details : Main() and Command-Line Arguments (C# Programming Guide)


    For your above example:

    public class MyClassName // changed the class name, avoid using the reserved keyword :P
    {
        int stuff;
        public MyClassName(int stuff)  // is the constructor
        {
            this.stuff = stuff;
        }
        public void method()
        {
            stuff = 1;
        }
    }
    

    If you need to use that class, you can create a static class with main method:

    class ProgramEntry
    {
        static void Main(string[] args)
        {
            MyClassName classInstance = new MyClassName(2);
            classInstance.method();
        }
    }
    
    0 讨论(0)
  • 2021-01-02 02:59

    static void main(string[] args) method in C# programs is the start point to execute. If you try to compile a single C# File, the compiler will find this method to start the execution. You don't need to create the method in a class you are using as a model, but you have to have this method on a Console Program, WinForms, etc...

    0 讨论(0)
  • 2021-01-02 03:00

    In this scenario you need at least one class in your code with the Main method in it. The other classes do not need the Main method.

    0 讨论(0)
提交回复
热议问题