1.4 输入参数

在WinForm应用程序中,应用程序的入口函数是一个Main方法,我们可以向该方法传递一个命令行参数。WPF也可以用类似的方法,而且更加灵活。

方法1:在Application类中定义带参数的Main方法,如下面的DesktopApp:

  namespace Yingbao.Chapter1.WpfAppWithInputParam
  {
      public class DesktopApp: Application
      {
        [STAThread]
        public static void Main(string[] command )
        {
        //...加入你的程序
        }
      }
  }

方法2:调用GetCommandLineArgs,如下面的Main中所用的方法:

  namespace Yingbao.Chapter1.WpfAppWithInputParam
  {
      public class DesktopApp: Application
      {
        [STAThread]
        public static void Main( )
        {
          string[] commandline = Environment.GetCommandLineArgs();
          foreach (string cmd in commandline)
          {
            Console.Write(cmd);
          }
        }
      }
  }

方法3:移植OnStartUp方法

方法1和方法2都需要处理入口函数Main。我们在Visual Studio中创建WPF应用程序,通常使用项目模板,该项目模板创建的Application类由两部分组成,一部分是XAML,一部分是后台C#。WPF在编译时,会自动产生一个Main函数,即在这种情况下,我们不能定义自己的Main方法。这时候若要处理命令行参数,则要移植OnStartUp方法:

  namespace Yingbao.Chapter1.WPFStartUp
  {
      public partial class App : Application
      {
        protected override void OnStartup(StartupEventArgs e)
        {
          base.OnStartup(e);
          string[] commands = e.Args;
          foreach (string command in commands)
          {
            Console.Write(command);
          }
          //你自己的逻辑
        }
      }
  }