2013-04-24 9 views
7

ich eine C# Methode mit einer variablen Länge Argumentliste habe, erklärten das params Schlüsselwort:benannte Parameter und das Schlüsselwort params in C#

public void VariableLengthParameterFunction (object firstParam, 
              params object[] secondParam) 

Gibt es eine Möglichkeit benannte Parameter verwenden beim Aufruf der Methode?

+2

was möchten Sie erreichen? – Default

+0

nur versucht, benannte Parameter zu verwenden, ohne die Methodensignatur zu ändern – marosoaie

Antwort

20

Sie können es benannten Parameter wie folgt aus anrufen:

VariableLengthParameterFunction(
    secondParam: new object[] { 5, 7, 3, 2 }, 
    firstParam: 4); 
+0

Dies scheint nicht mit Msbuild Tools 2015 zu arbeiten, das zweite Param ist verloren, wenn Sie die Kurzschrift für ein einzelnes Element verwenden? (arbeitet mit devenv obwohl) –

0

EDIT: Ich nahm Sie die params object[] secondParam Array mit benannten Parameter zugreifen möchten.

Derzeit weiß nur der Code innerhalb der Methode, was secondParam enthalten kann. Von der Methodensignatur gibt es keine Verbindung zwischen object[] und Namen/Typen für jedes Element in diesem Array.

Darüber hinaus, da Sie die params Schlüsselwort verwenden, gibt es keine Möglichkeit secondParam[1] zu versorgen, ohne einen Wert für secondParam[0] Versorgung (oder null).

Vielleicht könnten Sie eine Überladung erstellen, die benannte Parameter übernimmt, und die object[] erstellt und dann diese Methode aufruft. Oder umgekehrt.

Verwandte Themen