在外部可以使用cmd命令向C#控制台应用程序发送参数,并使之处理。main函数的形参一定要包含string[] args,否则该控制台应用程序不能接收外部参数。在使用cmd调用程序的时候,外部每个参数之间需要用空格隔开。
以下代码的逻辑是,将外部输入的参数追加的文本文件中,按照每行一个参数值的方式追加:
class Program { static void Main(string[] args) { try { if(args != null && args.Length > 0) { FileTo(Path.Combine(Application.StartupPath,"test.txt"),args); } } catch(Exception ex) { Console.WriteLine(ex.Message); } } public static void FileTo(string path,string[] param) { FileStream fs = null; StreamWriter sw = null; try { if(param != null && param.Length > 0) { fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); sw = new StreamWriter(fs); foreach(string item in param) sw.WriteLine(item); } } catch(Exception ex) { Console.WriteLine(ex.Message); } finally { if(sw != null) sw.Close(); if(fs != null) fs.Close(); } } }
在外部用cmd调用该控制台应用程序,ConsoleAppTest2.exe是编译后的控制台应用程序文件:
外部调用控制台应用程序后得到的结果:
文本文档中的结果:
经过本次实践,说明C#控制台应用程序的main方法可以接收外部参数,它可以成为一个外部调用该程序的一个入口。