Main函数是C#应用程序的主入口,且需要用public和static来修饰,是否需要返回值和输入命令参数则根据实际需要而定。但是否想过在一个应用程序中,允许有多个类包含Main吗?
例如下面的代码:

using System;

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还可以被看作一般的类的静态函数来对待,可以直接调用,如下面的代码中:

class Main1
{

   public static void Main()
   {
      Console.WriteLine("Main1");
      Main2.Main();
    }

}

用ildasm来检查对比两个Main函数的异同:

可以看到.entrypoint在Main1::Main中。

如果编译时候用别的参数:
csc test2.cs /main:Main2

则又可以将主入口点定为另外一个类的Main函数了。这种用法对于调试和测试应该可以带来许多方便。

那么如果在Vistual Studio的IDE可以做到吗?答案是肯定的,在属性页中有对应的参数,如下图:

多个Main函数的应用程序相关推荐

  1. WPF 用Main函数方式启动程序

    WPF默认程序启动:新建project后自动生成的App.xaml中指定程序启动方式(StartupUri="MainWindow.xaml"),如下代码所示,启动MainWind ...

  2. c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)

    计算机二级考试,附答案 多选题题库 C概述 1.[多选题.2005-4]不是C语言程序的基本单位是________. (A). 程序行 (B). 函数 (C). 语句 (D). 字符 2.[多选题.2 ...

  3. 【记录一个问题】cuda核函数可能存在栈溢出,导致main()函数退出后程序卡死30秒CUDA...

    调试一个CUDA核函数过程中发现一个奇怪的问题: 调用某个核函数,程序耗时33秒,并且主要时间是main()函数结束后的33秒: 而注释掉此核函数,程序执行不到1秒. 由此可见,可能是某种栈溢出,导致 ...

  4. 在一个C程序中,main()函数可以放在哪?

    C语言规定,在一个C程序中,main()函数的位置(). A.必须在系统调用的库函数之后 B.必须在程序的开始 C.必须在程序的最后 D.可以在任意位置 答案:D [解析] 每个C程序有且只有一个主函 ...

  5. Android的main方法,Android程序没有main函数,那Android程序的执行入口在哪儿?

    首先,我们可以了解,Android程序可以由一个或者多个Activity组成,每个Activity之间并没有很紧密的联系. 我们可以在自己的程序中调用其他的Activity,特别是自己的代码之外生成的 ...

  6. c++语言程序中,要调用的函数必须在main()函数中定义,惠州学院C++考试复习题

    惠州学院C++复习题 一.选择题 1.C++的源文件的扩展名是_____C____. A.h B.obj C.cpp D.exe 2.下列选项能够作为C++变量名的是___C____. A.false ...

  7. c语言程序总是从main函数开始执行,c语言程序总是从main函数开始执行吗?

    是的,一个C程序总是从main函数开始执行,而不论其在程序中的位置.在main函数中可以调用程序中的其他函数,而其他函数却不可以调用main函数:程序最后再从main函数中结束. 本教程操作环境:wi ...

  8. 单片机如何从上电复位执行到main函数?

    目录 1.启动文件 2.系统初始化过程 3.全局变量的初始化 从事嵌入式开发的伙伴可能会思考过一个问题,我们一般都是使用芯片厂商提供的驱动库和初始化文件,直接从main函数开始写程序,那么系统上电之后 ...

  9. 学点 C 语言(41): 函数 - 关于 main 函数

    main 函数是 C 程序的入口点, 不可或缺, 不可重复; main 函数应返回一个整数值给操作系统, 返回 0 表示正常结束. 前面使用的 main 函数都是无参数的: int main(void ...

最新文章

  1. 【C++】LINK类型错误分析记录
  2. 继承jpanel不显示_房产继承全指南
  3. unity可以用python编写吗_基于python的Cා代码生成器(用于服务并应用于unity),一个,c,为了,并且,Unity...
  4. oracle10g 6.0更改5.2,Oracle 10G 10.2.0.1升级到10.2.0.5
  5. qml如何发布程序_首创PC端小程序直播发布会,360如何与手机厂商一起共振?
  6. 请问 CType和DirectCast函数有何区别
  7. Netbeans不能正常启动glassfish或者部署失败不能运行的问题
  8. /boot 目录文件丢失修复记录
  9. LeetCode Sumary - Graph
  10. Laravel的CURD操作
  11. 浅谈JPA一:JPA是什么?
  12. HDOJ 4944 FSF’s game
  13. Multisim仿真:验证性实验-单管共射放大电路
  14. Arxiv 2206 | Global Context Vision Transformers
  15. 前端实现视频或者图片直链下载
  16. 影视之我看——写自己的剧本
  17. 绘制奥林匹克五环旗。
  18. 解决PL2303TA不支援WINDOWS 11及后续版本的问题
  19. Unity3D教程:简单的碰撞检测
  20. 萝卜家园 Ghost XP 新春装机版 V200801

热门文章

  1. 速卖通运营之选品方法和技巧
  2. 全球及中国人工智能驱动的医学成像行业全景调研及运营战略分析报告2021-2027年版
  3. NSIS 的 Modern UI 教程(二)
  4. 功能性农业谋定乡村振兴路径-万祥军:灌区农业大健康产业
  5. Linux 认证考试:精解Linux find命令的使用linuxfindnam
  6. Python IDLE 无法启动
  7. day18-事务与连接池 3.jdbc中事务操作介绍
  8. Android学习笔记--JNI的使用方法
  9. asp.net linq查询环境搭建
  10. 移动端前端开发注意点(未完待续)