///собственно выдача подсказки с версией приложения static public void mkVHelp( string forWhat ///<краткое описание приложения , string ver ///<версия приложения , string after ///<дополнительная часть строки usage ///<тут можно нестандартным образом показать ключи , bool verbose ///<добавлять ли список синонимов в подсказку , params Arg[] ars ) { string v = ""; if (ver.Length > 0) { v = " (ver:" + ver + ")"; } if (PeReaderExtensions.IsConsoleApp()) { Console.Error.WriteLine( Args.Arg.mkHelp(forWhat + v, after, ars) ); if (verbose) { for (int i = 0; i < ars.Length; i++) { if (ars[i].sNm != ars[i].lNm) { Console.Error.WriteLine( "'{0}' means the same as '{1}'", ars[i].sNm, ars[i].lNm); } } } } else { string foo = Args.Arg.mkHelp(forWhat + v, after, ars); if (verbose) { for (int i = 0; i < ars.Length; i++) { if (ars[i].sNm != ars[i].lNm) { foo += string.Format( "\n'{0}' means the same as '{1}'", ars[i].sNm, ars[i].lNm); } } } System.Windows.Forms.MessageBox.Show(foo, forWhat + v); } }
public override void set(ref int i, string [] ps) /// разбор аргументов командной строки2 { i++; if (i < ps.Length) { try { set(ps[i]); } catch { string foo = string.Format("wrong value for {0}/{1} argument: {2} " , sNm, lNm, ps[i]); if (PeReaderExtensions.IsConsoleApp()) { Console.Error.WriteLine(foo); Environment.Exit(1); } else { System.Windows.Forms.MessageBox.Show(foo, "Error"); Environment.Exit(1); } } } else { string foo = string.Format("there is no value for {0}/{1} argument", sNm, lNm); if (PeReaderExtensions.IsConsoleApp()) { Console.Error.WriteLine(foo); Environment.Exit(1); } else { System.Windows.Forms.MessageBox.Show(foo, "Error"); Environment.Exit(1); } } }
public override void set(ref int i, string [] ps) { i++; if (i < ps.Length) { v = ps[i]; } else { string foo = string.Format("there is no value for {0}/{1} argument", sNm, lNm); if (PeReaderExtensions.IsConsoleApp()) { Console.Error.WriteLine(foo); Environment.Exit(1); } else { System.Windows.Forms.MessageBox.Show(foo, "Error"); Environment.Exit(1); } } }