Comment démarrer un programme avec des arguments lors du débogage?

Je veux déboguer un programme dans Visual Studio 2008. Le problème est qu’il se ferme s’il n’obtient pas d’arguments. Ceci est de la méthode principale:

if (args == null || args.Length != 2 || args[0].ToUpper().Trim() != "RM") { Console.WriteLine("RM must be executed by the RSM."); Console.WriteLine("Press any key to exit program..."); Console.Read(); Environment.Exit(-1); } 

Je ne veux pas commenter et puis de nouveau en compilant. Comment puis-je démarrer le programme avec des arguments lors du débogage? Il est défini comme projet de démarrage.

    Accédez à Project-> Properties . Cliquez ensuite sur l’onglet Debug et renseignez vos arguments dans la zone de texte intitulée Command line arguments .

    Je suggère d’utiliser les directives comme suit:

      static void Main(ssortingng[] args) { #if DEBUG args = new[] { "A" }; #endif Console.WriteLine(args[0]); } 

    Bonne chance!

    Ma suggestion serait d’utiliser des tests unitaires.

    Dans votre application, effectuez les commutations suivantes dans Program.cs :

     #if DEBUG public class Program #else class Program #endif 

    et même pour static Main(ssortingng[] args) .

    Ou bien utilisez les Assemblées d’amis en ajoutant

     [assembly: InternalsVisibleTo("TestAssembly")] 

    à votre AssemblyInfo.cs .

    Ensuite, créez un projet de test unitaire et un test qui ressemble un peu à ceci:

     [TestClass] public class TestApplication { [TestMethod] public void TestMyArgument() { using (var sw = new SsortingngWriter()) { Console.SetOut(sw); // this makes any Console.Writes etc go to sw Program.Main(new[] { "argument" }); var result = sw.ToSsortingng(); Assert.AreEqual("expected", result); } } } 

    De cette façon, vous pouvez, de manière automatisée, tester plusieurs entrées d’arguments sans avoir à modifier votre code ou modifier un paramètre de menu chaque fois que vous souhaitez vérifier quelque chose de différent.