why in C#, console application, in "program" class , which is default, all methods have to be static along with
static void Main(string[] args)
See Question&Answers more detail:oswhy in C#, console application, in "program" class , which is default, all methods have to be static along with
static void Main(string[] args)
See Question&Answers more detail:osMember 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.