Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Invalid verbs do not cause errors if a default verb is set

Offen
#849 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
csharp
Bereich
cli

Rechercherichtung

Beginnen Sie mit dem im Issue gezeigten Aufruf von Parser.ParseArguments und reproduzieren Sie das Verhalten mit DefaultVerb.exe foo bei aktiviertem Standardverb. Verfolgen Sie, wie ein nicht erkanntes Verb behandelt wird, wenn ein Standardverb vorhanden ist, und überprüfen Sie anschließend, dass die ungültige Eingabe den Fehlerpfad statt DoSomething oder des Standardverbs erreicht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Below is a very simplified C# console application I called DefaultVerb. Running the application with start or finish works as expected, outputting Start or Finish correctly, but if I run the application with DefaultVerb.exe foo, it outputs Start. If I set isDefault to false, and run DefaultVerb.exe foo I receive the following expected error:
ERROR(S): Verb 'foo' is not recognized. --help Display this help screen. --version Display version information.
When I have isDefault: true on my verb, what should be the behavior if I pass in an invalid verb? I'm not expecting a bad verb to run my default verb.

`
using CommandLine;
using System;

internal class Program
{
[Verb("start", isDefault: true, HelpText = "start help")]
class StartOptions
{
}

[Verb("finish", HelpText = "finish help")]
class FinishOptions
{
}

static void Main(string[] args)
{
    var parser = new Parser(settings =>
    {
        settings.AutoVersion = false;
        settings.CaseSensitive = false;
        settings.HelpWriter = Console.Out;
    });

    parser.ParseArguments<StartOptions, FinishOptions>(args)
        .WithNotParsed(ExitWithError)
        .WithParsed(DoSomething);
}

static void DoSomething(object commandObj)
{
    switch (commandObj)
    {
        case StartOptions:
            Console.WriteLine("Start");
            break;
        case FinishOptions:
            Console.WriteLine("Finish");
            break;
    }
}
static void ExitWithError(IEnumerable<Error> errors)
{
    Environment.Exit(1);
}

}
`

Vorherrschende Sprache
C#
Sterne
4.8k
Forks
478
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus commandlineparser/commandline

Alle Issues in commandlineparser/commandline

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.