[C#] 驾驭过入口函数 Main() 吗?带你用批处理玩转 Main 函数

摸底过入口函数 Main() 吗?带你用批处理玩转 Main 函数

目录

  • 简介
  • 特点
  • 主意的参数
  • 艺术的再次回到值
  • 与批处理互相的一个示范

 

简介

我们知道,新建一个控制台应用程序的时候,IDE 会同时创建一个默认的类 Program.cs,该类会包含一个 Main 方法。我们在直接 F5 的时候就会立即执行里面的语句。但是,你自己有认真了解过它吗。

Main方法是 C# 控制台应用程序和 Windows
窗体应用程序的入口点(也称切入点)。应用程序运维时,Main 方法是首先个调用的法门。程序中不得不,只同意有一个入口点,假设有很多类都带有 Main 方法,则必须选取 /main 编译器选项编译该程序,并选定用作入口点的 Main 方法。

  【备注】库和劳动并不须要 Main 方法作为入口点。

 

  那恐怕是您刚入门 C# 的其中一个演示。

    class MyClass
    {
        static void Main(string[] args)
        {
            //输出命令行的参数长度
            WriteLine(args.Length);
        }
    }

  【备注】那里没有点名访问修饰符,私行认同的访问级别为 private。

 

特点

  • 它是 .exe
    程序的入口点(切入点),程序控制流在此处伊始和竣工。

  • 它在类或结构内申明。
    它必须是静态的,且不应该public。

  • 它的归来类型有二种:void 和 int

  • 它可以分包命令行实参的 string[] 形参,也足以没有形参。 使用 VS
    创设 Windows
    窗体应用程序时,你可以挑选手动添加形参,当然,也得以采纳使用 Environment
    那样的类来读取 CMD 的实参。

  【备注】那里的它指 Main 方法。

 

措施的参数

  你可以因此如此的点子,将参数发送到 Main 方法。

1   static void Main(string[] args)
2 
3   static int Main(string[] args)

  【备注】想在 Windows 窗体应用程序中的 Main 方法中启用 CMD
参数,你还得手动修改 Program.cs 类里面 Main 方法的署名。 因为,Windows
窗体设计器它自动生成的代码中,所包涵的 Main 方法默认是不带参数的
当然,你也能够用接近 Environment.GetCommandLineArgs 等措施从 CMD 或
Windows 应用程序中的任意地方访问 CMD 参数。

  

  参数 string[]
args 是表示 CMD
参数的一个 String 数组。我们一般是经过判断 Length 属性来确定参数是还是不是留存。请看:

1         if (args.Length == 0)
2         {
3             WriteLine("Hello World.");
4             return 1;
5         }

 

  也可以应用 Parse 方法将参数转换为数值类型。 请看:

1             //结果是一样的
2             long num = Int64.Parse(args[0]);
3 
4             long num = long.Parse(args[0]); //Int64 的别名
5 
6             long num = Convert.ToInt64(args[0]);    //Convert 类

 

办法的重返值

  它能够回到 void,也可以是 int。

 1     static void Main()
 2     {
 3         //...
 4     }
 5 
 6     //返回类型:int
 7     static int Main()
 8     {
 9         //...
10         return 0;
11     }

  倘诺不愿意 Main 的持有再次来到值,你能够拔取重返 void 简化代码。
但是,假诺回去整数,则该程序能够与调用该 .exe
文件的任何程序或脚本举行消息互相。

 

与批处理相互的一个演示

  我打算采纳一个批处理公事来推行顺序,来测试 Main 函数的重临值。 在
Windows
中推行你的程序时,Main 函数会将赶回的值存放到一个名字叫 ERRORLEVEL 的环境变量中。
通过 check
那个名字叫 ERRORLEVEL 的环境变量,批处理文件可以领略本身的执行结果。
平时,我们会以再次来到值为 0 来表示执行成功。

  上边是一个大概示例,从 Main 函数重回 0(0 表示程序运营成功)。
小编将它命名为 MyMainTest.cs(修改了 Program.cs 的名字)。

1     class MyMainTest
2     {
3         static int Main(string[] args)
4         {
5             //TODO: Other
6             return 0;
7         }
8     }

  

  写好后定位到含有 MyMainTest.cs 的文件夹。

图片 1

 

  我在其间新增了一个名为 yourTest.bat
的批处理公事。代码你可以直接粘贴:

rem yourTest.bat  
@echo off  
MyMainTest  
@if "%ERRORLEVEL%" == "0" goto ok  

:fail  
    echo Execution Failed  
    echo return value = %ERRORLEVEL%  
    goto end  

:ok  
    echo Execution succeeded  
    echo Return value = %ERRORLEVEL%  
    goto end  

:end  

 

  注意,不要双击,因为是平素闪退看不到效果的。大家先开辟
CMD,并稳定到您的目录:

图片 2

 

  接着,执行命令:csc
MyMainTest.cs。那时,你就会看到自动帮你编译并生成了 MyMainTest
的可执行文件。

图片 3

 

  最后,大家再一次在指令行中执行 yourTest.bat,就足以看来结果了。

图片 4

 

C# 基础回想连串

  《C# 知识回看 –
种类化

  《C# 知识回看 – 表明式树 Expression
Trees

  《C# 知识回看 – 特性Attribute》、《浅析
AssemblyInfo.cs – 明白常用的表征
Attribute

  《C# 知识回看 – 委托
delegate
》、《C#
知识回想 – 委托 delegate
(续)

  《C# 知识回看 –
事件入门
》、《C#
知识回看 – 伊夫nt
事件

  《string 与 String,大 S 与小 S
之间从未什么不可言说的神秘

  《C# 知识回看 –
你真的懂格外(Exception)吗?

 

 


 

【博主】反骨仔

【出处】http://www.cnblogs.com/liqingwen/p/6213624.html 

【参考】微软官方文档  

相关文章