Was ist ein wirkliches Beispiel dafür, wann Parameter als Methodargument verwendet werden sollen?

StackOverflow https://stackoverflow.com/questions/5822719

  •  26-10-2019
  •  | 
  •  

Frage

So wie ich es verstehe, params Ist nur syntaktischer Zucker, der Ihnen einfach ein Array des Typs gibt, den Sie angegeben haben.

Wann würden Sie das verwenden?

Zweitens, warum sollten Sie es verwenden, anstatt nur ein Array -Argument zu erklären?

War es hilfreich?

Lösung

Math.Min nimmt genau zwei Argumente. Dies ist eine dumme Einschränkung. Mit vielen anderen Sprachen können Sie schreiben:

double x, y, z, w;
double least = min(x, y, z, w);

Wenn Sie eine schreiben wollten min Funktion, die so verwendet werden könnte, möchten Sie verwenden params.

Andere Tipps

Ein offensichtliches Beispiel kann in einer Methode wie gefunden werden String.Format(). Diese Anweisung unter Verwendung von Params ist leicht zu befolgen:

string.Format("Your name is {0}, {1}", lastName, firstName);

Aber ohne Parameter ist es etwas schwieriger:

string.Format("Your name is {0}, {1}", new string[] { lastName, firstName });

Ich benutze mich viel für Stringfunktionen wie diese. Ich benutze es nur, um die Lesbarkeit des Codes zu verbessern.

Eine Möglichkeit, wie ich es benutzte, besteht darin, SQL -Abfragen an meine Wrapper -Klasse zu übergeben. Ich werde einige SQL mit einer variablen Anzahl von Parametern haben. Auf diese Weise kann ich einfach alle Parameter auflisten, die ich mit der Abfrage sende, anstatt zuerst ein Array zu erstellen.

    SQLWrapper.Query(" some sql with parameters", new SqlParameter("@param1", val1),
                                                  new SqlParameter("@param1", val1),
                                                  new SqlParameter("@param1", val1));

Viel schöner als die Alternative:

SQLWR

apper.Query(" some sql with parameters", new SqlParameter[]{new SqlParameter("@param1", val1),
                                                      new SqlParameter("@param1", val1),
                                                      new SqlParameter("@param1", val1)});

Es ist schön zu haben, wenn Sie in eine Situation stoßen, in der Sie eine variable Anzahl von Argumenten benötigen.

Ein Beispiel aus der Basisklassenbibliothek ist String.Split(params char[] separator), sodass Sie zum Beispiel schreiben können:

var segs = myString.Split(',',';',' ');

statt

var sets = myString.Split(new char[] {',', ';', ' '});

Der wichtigste nicht prettierende / leichtere Verständnis, warum ich Paramien verwende, besteht darin, gespeicherte Prozeduren auszuführen.

Nehmen Sie den Fall, in dem Sie mehrere hundert gespeicherte Verfahren in einer Datenbank haben. Dann haben Sie wirklich nur zwei Möglichkeiten

1: Schreiben Sie den Code einzeln für jede gespeicherte Prozedur, die Monate dauern würde

2: Erstellen Sie eine generische Ausführungsmethode, mit der ein belagertes Verfahren ausgeführt wird und eine beliebige Anzahl und Art der Parameter angeht, z.

databaseHelper.ExecuteStoredProcedure(
                "myStoredProecdure",
                DbProviderHelper.StringParameter("@parameter_string", somestring),
                DbProviderHelper.BoolParameter("@parameter_string", somebool),
                DbProviderHelper.IntParameter("@parameter_int", someint));   
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top