多个Main函数的应用程序
Main函数是C#应用程序的主入口,且需要用public和static来修饰,是否需要返回值和输入命令参数则根据实际需要而定。但是否想过在一个应用程序中,允许有多个类包含Main吗?
例如下面的代码:
class Main1
{
public static void Main()
{
Console.WriteLine("Main1");
Main2.Main();
}
}
class Main2
{
public static void Main()
{
Console.WriteLine("Main2");
}
}
直接编译肯定出错的,如下图:
看起来似乎不允许在一个应用程序集中定义多个Main函数,但在编译时候设置参数是允许的。
如下面的命令:
csc test2.cs /main:Main1
这时候会用Main1类中的Main作为主入口点。而另外一个Main还可以被看作一般的类的静态函数来对待,可以直接调用,如下面的代码中:
{
public static void Main()
{
Console.WriteLine("Main1");
Main2.Main();
}
}
用ildasm来检查对比两个Main函数的异同:
可以看到.entrypoint在Main1::Main中。
如果编译时候用别的参数:
csc test2.cs /main:Main2
则又可以将主入口点定为另外一个类的Main函数了。这种用法对于调试和测试应该可以带来许多方便。
那么如果在Vistual Studio的IDE可以做到吗?答案是肯定的,在属性页中有对应的参数,如下图:
多个Main函数的应用程序相关推荐
- WPF 用Main函数方式启动程序
WPF默认程序启动:新建project后自动生成的App.xaml中指定程序启动方式(StartupUri="MainWindow.xaml"),如下代码所示,启动MainWind ...
- c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)
计算机二级考试,附答案 多选题题库 C概述 1.[多选题.2005-4]不是C语言程序的基本单位是________. (A). 程序行 (B). 函数 (C). 语句 (D). 字符 2.[多选题.2 ...
- 【记录一个问题】cuda核函数可能存在栈溢出,导致main()函数退出后程序卡死30秒CUDA...
调试一个CUDA核函数过程中发现一个奇怪的问题: 调用某个核函数,程序耗时33秒,并且主要时间是main()函数结束后的33秒: 而注释掉此核函数,程序执行不到1秒. 由此可见,可能是某种栈溢出,导致 ...
- 在一个C程序中,main()函数可以放在哪?
C语言规定,在一个C程序中,main()函数的位置(). A.必须在系统调用的库函数之后 B.必须在程序的开始 C.必须在程序的最后 D.可以在任意位置 答案:D [解析] 每个C程序有且只有一个主函 ...
- Android的main方法,Android程序没有main函数,那Android程序的执行入口在哪儿?
首先,我们可以了解,Android程序可以由一个或者多个Activity组成,每个Activity之间并没有很紧密的联系. 我们可以在自己的程序中调用其他的Activity,特别是自己的代码之外生成的 ...
- c++语言程序中,要调用的函数必须在main()函数中定义,惠州学院C++考试复习题
惠州学院C++复习题 一.选择题 1.C++的源文件的扩展名是_____C____. A.h B.obj C.cpp D.exe 2.下列选项能够作为C++变量名的是___C____. A.false ...
- c语言程序总是从main函数开始执行,c语言程序总是从main函数开始执行吗?
是的,一个C程序总是从main函数开始执行,而不论其在程序中的位置.在main函数中可以调用程序中的其他函数,而其他函数却不可以调用main函数:程序最后再从main函数中结束. 本教程操作环境:wi ...
- 单片机如何从上电复位执行到main函数?
目录 1.启动文件 2.系统初始化过程 3.全局变量的初始化 从事嵌入式开发的伙伴可能会思考过一个问题,我们一般都是使用芯片厂商提供的驱动库和初始化文件,直接从main函数开始写程序,那么系统上电之后 ...
- 学点 C 语言(41): 函数 - 关于 main 函数
main 函数是 C 程序的入口点, 不可或缺, 不可重复; main 函数应返回一个整数值给操作系统, 返回 0 表示正常结束. 前面使用的 main 函数都是无参数的: int main(void ...
最新文章
- 【C++】LINK类型错误分析记录
- 继承jpanel不显示_房产继承全指南
- unity可以用python编写吗_基于python的Cා代码生成器(用于服务并应用于unity),一个,c,为了,并且,Unity...
- oracle10g 6.0更改5.2,Oracle 10G 10.2.0.1升级到10.2.0.5
- qml如何发布程序_首创PC端小程序直播发布会,360如何与手机厂商一起共振?
- 请问 CType和DirectCast函数有何区别
- Netbeans不能正常启动glassfish或者部署失败不能运行的问题
- /boot 目录文件丢失修复记录
- LeetCode Sumary - Graph
- Laravel的CURD操作
- 浅谈JPA一:JPA是什么?
- HDOJ 4944 FSF’s game
- Multisim仿真:验证性实验-单管共射放大电路
- Arxiv 2206 | Global Context Vision Transformers
- 前端实现视频或者图片直链下载
- 影视之我看——写自己的剧本
- 绘制奥林匹克五环旗。
- 解决PL2303TA不支援WINDOWS 11及后续版本的问题
- Unity3D教程:简单的碰撞检测
- 萝卜家园 Ghost XP 新春装机版 V200801