众所周知,c#中控制台应用程序中Main函数为静态函数,那为什么不能是非静态函数呢?
分析如下:
C#控制台中,如果Main是非静态函数,那么在调用的时候就需要进行实例化才能被调用,而系统在调用的时候是直接调用的Main函数,所以要声明成静态函数。
那可不可以通过重载Main函数,在静态Main函数中调用非静态的Main函数?
实验如下:
首先想到怎么重载,首先把Main的形参去掉
static void Main()
编译通过
如果直接把形参改掉
static void Main(int[] args)
编译失败,没有找到签名,也就是说编译器找不到特定的Main函数声明,失败。
仔细想了想,以下代码编译通过,重载Main函数,但是入口Main函数还是静态的
namespace ConsoleApplication1
{
class Program3
{
static int Main()
{
Program3 mya=new Program3();
mya.Main(1);
return 0;
}
int Main(int jjj)
{
Decimal[] myarr = new Decimal[40];