Main方法是C#控制台应用程序和Windows窗体应用程序的入口点。Main方法可以有形参,也可以没有,可以有返回值(int整型),也可以没有。如下定义:

无返回值、无形参的格式:
static void Main(){
//to do sth
} 无返回值、有形参的格式:
static void Main(string[] args){
//to do sth
} 有返回值、无形参的格式:
static int Main(){
//to do sth
return ;
} 有返回值、有形参的格式:
static int Main(string[] args){
//to do sth
return ;
}

Main方法必须为静态形式,访问修饰符不能为public。因C#类中默认的访问修饰符为private,因此可以不写。

在外部可以通过输入命令行参数的形式启动应用程序,从而进入程序的入口(Main方法)。

在开始菜单中打开“Visual Studio开发人员命令提示”窗口,然后导航到cs文件所在目录。用csc命令编译包含Main方法的cs文件,如:csc test.cs。如果编译成功,当下目录会生成一个test.exe应用程序,这时可用test param1 param2命令调用应用程序并执行应用程序,每个参数之间用空格隔开,如果参数中有空格,就用双引号将该参数围着,这样应用程序就会将它识别为一个参数,而不是多个。

命令行输入格式如下:

命令行输入格式 传递给Main方法的字符串数组格式
test one two three

"one"

"two"

"three"

test a b c

"a"

"b"

"c"

test "one two" three

"one two"

"three"

测试代码如下:

class test{
static int Main(string[] args){
int count=;
if(args!=null && args.Length>)
foreach(string item in args)
System.Console.WriteLine("第{0}个参数:{1}",count++,item);
else
System.Console.WriteLine("没有输入任何参数!");
System.Console.WriteLine("程序结束!");
return ;
}
}

测试结果如图:

可以用批处理文件来运行C#应用程序,并根据应用程序返回的整型结果进行下一步逻辑操作。

在Windows中执行程序时,Main方法返回的任何值都将保存到名为ERRORLEVEL的环境变量中。可以通过检查ERRORLEVEL变量的值,批处理文件可以确定程序执行的结果。通常可以将返回值设置为0,用来表示程序执行成功的标志。

test.bat批处理文件内容如下:

rem test.bat
@echo off
test one two three
@if "%ERRORLEVEL%" == "0" goto Success :Failed
echo program execute failed
echo the return value is %ERRORLEVEL%
goto End :Success
echo program execute success
echo the return value is %ERRORLEVEL%
goto End :End pause

批处理test.bat执行结果如下:

最新文章

  1. 从E.E到S.E
  2. linux下查看cpu物理个数、核数、逻辑cpu数
  3. Linux 基础入门
  4. 新 esb-cs-tool.jar 参数说明
  5. java io 文件操作
  6. cf C. Vasya and Robot
  7. Computational Geometry Template
  8. servlet doGet()方法获取字符串乱码问题
  9. docker安装mysql容器后,是用navicat连接报client does not support authentication protocol requested by server consider upgrading mysql client
  10. 关于360插件化Replugin Activity动态修改父类的字节码操作
  11. js中的变量提升与函数提升
  12. 64位 windows10下 Apache2.4 + php7 + phpstorm 相关设置
  13. react 表格扩展与编辑
  14. mongodb4.0.2 复制集主从部署
  15. R语言——实验5-聚类分析
  16. Unity Mono
  17. [洛谷P4491] [HAOI2018]染色
  18. android之截屏(包括截取scrollview与listview的)
  19. 【联网】虚拟机下Linux(终端)配置网络的方法
  20. Codeforces Round #415 (Div. 2)C

热门文章

  1. goole机器学习视频链接【学习笔记】
  2. jquery hover最后解决 - 不再疑惑 - 例子在这里
  3. PHP开发者的路书
  4. 加法变乘法|2015年蓝桥杯B组题解析第六题-fishers
  5. Large Division(大数)题解
  6. 【TCP/IP详解 卷一:协议】第十章 动态选路协议
  7. SVN基本命令总结
  8. Intel微处理器学习笔记(三) 不可见寄存器
  9. go 变量声明
  10. c++ primer plus 第五章 课后题答案