.Net 7 托管Main入口的四种类型
2024-10-10 16:15:46
前言:
按照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#代码的运作。
结尾
作者:江湖评谈
最新文章
- SVD的几何意义,以及在去噪,推荐系统中的应用
- ios-系统警告框 跳转到设置里面
- Centos配置网卡
- (POJ2635)The Embarrassed Cryptographer(大数取模)
- 软件设计之UML—UML中的六大关系
- Servlet与jsp间的传值问题
- mysql的内连接,外连接(左外连接,右外连接)巩固
- Perl文件测试操作和stat函数
- H5海报制作实践
- MySQL删除命令_DELETE
- 【Python64-tkinter_label组件】
- ReactNative组件之scrollView实现轮播
- Android 组件系列-----Activity初步
- Docker容器使用jenkins部署web项目--总结(二)
- B: Break Prime
- 【机器学习】多项式回归sklearn实现
- Kali信息收集工具-dimtry
- mysql中设置小数
- 查找一个String中存储的多个数据
- Pycharm选中代码无法Backspace直接删除