zoukankan      html  css  js  c++  java
  • 多个Main函数的应用程序

            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可以做到吗?答案是肯定的,在属性页中有对应的参数,如下图:

  • 相关阅读:
    mysql数据库基本操作sql语言
    asp.net MVC4 表单
    asp.net MVC4 表单
    Mysql字符集设置
    zen Code 支持的代码样式
    sqlserver数据库标注为可疑的解决办法(转)
    SQL Server遍历表的几种方法
    GridView 动态添加绑定列和模板列
    TransactionScope 之分布式配置
    sql server 执行上100mb sql sql sql server 无法执行脚本 没有足够的内存继续执行
  • 原文地址:https://www.cnblogs.com/windsails/p/56658.html
Copyright © 2011-2022 走看看