2017-06-27 5 views
0

Je suis nouveau sur C# et je ne reçois pas les lignes de code suivantes. La deuxième partie où le formulaire principal est en train de charger (à l'intérieur de la condition else), me semble familière. Mais la première partie où le code lit à partir de args [0] est un peu difficile à comprendre pour moi. Quelqu'un peut-il aider les pls? J'ai besoin de comprendre clairement ce qui se passe ici. Tous les liens seraient bien aussi. Je ne sais pas comment commencer la rechercheDifférence entre le lot Mainform et le lot XML dans la ligne de commande

if (args.Length > 0 && ("xml" == args[0].Substring(args[0].Length - 3)))  
       { 
        BatchApplicationContext context = new BatchApplicationContext(args[0]); 
        if (context.ReturnValue == 0) Application.Run(context); 
        ret = context.ReturnValue; 
       } 
       else 
       { 
        Properties.Brand.InitializeHook("App.Properties.Resources", Assembly.GetExecutingAssembly()); 
        MainForm mainForm = new MainForm(args); 
        if (mainForm != null && !mainForm.DoExit) Application.Run(mainForm); 
       } 
+0

Argument sont la ligne de commande que vous tapez à partir de la fenêtre cmd.exe qui sont les paramètres de main (string [] args). Dans ce cas, l'élément zéro est le nom du fichier exécutable. Je pense que le code devrait utiliser args [1]. – jdweng

+0

Merci pour l'info. Pourriez-vous me suggérer un lien à lire à ce sujet en détail. Ce serait utile. – Newbie0111

+0

Voir msdn: https://msdn.microsoft.com/fr-fr/library/aa288457(v=vs.71).aspx – jdweng

Répondre

0

Fondamentalement, il vérifie l'existence de « xml » au début des arguments de ligne de commande transmis à l'application et soit

(1) instantie la classe BatchApplicationContext passant l'argument au constructeur de tel (Je ne connais pas une telle classe qui fait partie du .Net Framework, est-ce une classe définie par l'utilisateur?) Application.Run (context) Spécifie les informations contextuelles sur un fil d'application, donc mon suppose qu'ils utilisent une classe personnalisée (u ser défini) pour créer l'objet de contexte pour une utilisation dans ce bloc de code

OU

(2) instancie la MainForm passer l'argument au constructeur de telle et affiche alors la forme si chargé avec succès