c# : console application - static methods

前端 未结 5 686
[愿得一人]
[愿得一人] 2020-12-24 01:26

why in C#, console application, in \"program\" class , which is default, all methods have to be static along with

static void Main(string[] args)

5条回答
  •  萌比男神i
    2020-12-24 01:45

    Member functions don't have to be static; but if they are not static, that requires you to instantiate a Program object in order to call a member method.

    With static methods:

    public class Program
    {
        public static void Main()
        {
            System.Console.WriteLine(Program.Foo());
        }
    
        public static string Foo()
        {
            return "Foo";
        }
    }
    

    Without static methods (in other words, requiring you to instantiate Program):

    public class Program
    {
        public static void Main()
        {
            System.Console.WriteLine(new Program().Foo());
        }
    
        public string Foo() // notice this is NOT static anymore
        {
            return "Foo";
        }
    }
    

    Main must be static because otherwise you'd have to tell the compiler how to instantiate the Program class, which may or may not be a trivial task.

提交回复
热议问题