zoukankan      html  css  js  c++  java
  • 读书笔记 C# 控制台应用程序之Main方法浅析

    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 0;
    }
    
    有返回值、有形参的格式:
    static int Main(string[] args){
        //to do sth  
        return 0;  
    }

    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=1;
            if(args!=null && args.Length>0)
                foreach(string item in args)
                    System.Console.WriteLine("第{0}个参数:{1}",count++,item);
            else
                System.Console.WriteLine("没有输入任何参数!");
            System.Console.WriteLine("程序结束!");
            return 0;
        }
    }

    测试结果如图:

    可以用批处理文件来运行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执行结果如下:

  • 相关阅读:
    苹果新的编程语言 Swift 语言进阶(五)--控制流
    苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型
    苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算
    苹果新的编程语言 Swift 语言进阶(二)--基本类型
    第一篇 android架构是如何满足设计目标的?
    第三篇 android 应用开发模式之MVC模式及Observer模式
    第二篇 android应用开发模式之模板模式
    为什么带网格(mesh)的模型添加了刚体Rigidbody和MeshCollider,还是会从地板穿过去?
    Mecanim动画模型规范
    HTC Vive 体验的折腾经历
  • 原文地址:https://www.cnblogs.com/williamwsj/p/6114477.html
Copyright © 2011-2022 走看看