.Net 7 托管Main入口的四种写法(茴香豆?)
Posted 六朝一洗繁华尽 四始重删雅颂分
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net 7 托管Main入口的四种写法(茴香豆?)相关的知识,希望对你有一定的参考价值。
前言:
按照CLR的规则,C#托管Main入口其实有四种写法。
写法
第一种:最常见的,也是VS默认的,返回值void,带一个参数
static void Main(string[] args)
Console.Write("Tian xia feng yun chu wo bei");
Console.ReadLine();
第二种:返回值void,不带参数
static void Main()
Console.Write("Tian xia feng yun chu wo bei");
Console.ReadLine();
第三种:返回值int,带一个参数
static int Main(string []args)
Console.Write("Tian xia feng yun chu wo bei");
Console.ReadLine();
return 0;
第四种:返回值Int,不带参数
static int Main()
Console.Write("Tian xia feng yun chu wo bei");
Console.ReadLine();
return 0;
原理
这四种类型,根据CLR的规则演变
enum CorEntryPointType
EntryManagedMain, // void main(String[])
EntryCrtMain // unsigned main(void)
;
看到,CLR定义托管Main入口的返回值两种类型:void和unsigned(int)。
参数也有两种类型:void和String[]。
把这些规则两两组合,就成了托管Main入口的所有种类。
同时也要注意的是,它这个Main的参数不能超过一个,要么0个,要么1个。多了的话,它直接报错了。这个规则也是CLR定义的。
if (nParamCount != 1)
ThrowMainMethodException(pFD, IDS_EE_TO_MANY_ARGUMENTS_IN_MAIN);
通过CLR的这些规则,控制C#代码的运作。
结尾
作者:江湖评谈
以上是关于.Net 7 托管Main入口的四种写法(茴香豆?)的主要内容,如果未能解决你的问题,请参考以下文章
Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理