2017-09-12 1 views
1

Ich möchte die Funktion 'Named Arguments' als Parameter verwenden.Auswählen einer überladenen Methode mit 'Named arguments'

Es gibt zwei Methoden.

Im Fall der oben genannten Klasse, wenn ich Methode mit 'benannte Argumente' aufrufen. Ich kann wie method(param: 'some value'); anrufen, und ich will null in ‚einem gewissen Wert‘ geben, so dass, wenn ich so versuchen,

method(param:null); 

ich diese Nachricht sehen ist

Der Aufruf mehrdeutig zwischen den folgenden Methoden oder Eigenschaften: 'Methode' und 'Methode'

Dann erkannte ich, diese beiden (Class1, Class2) sehr ähnlich sind.

Also, wenn ich versuche, es so zu werfen,

method((Class1)param:null); 

ich mit der Meldung unten fehlgeschlagen.

Der Name 'Bezeichner' existiert nicht im aktuellen Kontext kann

So 'werfen' this 'param' Parameter?

Vielen Dank.

+0

Sie haben nicht versucht, was buchstäblich die einzige andere Option diese Kennungen anzuordnen? Vorbereitung für 10 Antworten alle sagen das gleiche in 3, 2, 1 ... –

+0

@ JeroenMostert Guilty ... – ediblecode

+0

@JeroenMostert Oh, ich sehe. Ich werde versuchen, das nächste Mal mehr zu finden. Danke :) – hyunsooPark

Antwort

1

Sie es wie folgt aus:

MethodName(param: (Class1)null) 

Grundsätzlich müssen Sie die null auf Ihre gegebenen Art werfen, nicht der Parameter

+0

Vielen Dank :) Ich habe es! – hyunsooPark

0

Warum die beiden Methoden nicht trennen?

  • method1 (Class1 param)

  • method2 (Class2 param)

ODER so etwas wie:

public method<T>(T param) 
{ 
    if(param.GetType() == typeof(Class1)) 
    { 
     //Do stuff for Class1 
     Console.WriteLine("Class1"); 
    } 
    else if (param.GetType() == typeof(Class2)) 
    { 
     //Do stuff for Class2 
     Console.WriteLine("Class2"); 
    } 
} 
+0

Ich mache gerade Unit Test über diese Klasse und was ich will, ist über die Verwendung von "benannten Argumenten", wenn Eingabewert in bestimmten Methode. Und diese Klasse gehört mir nicht. Also ich weiß nicht, warum diese beiden getrennt sind. Danke für Ihre Kommentare. – hyunsooPark

+0

Das ist eine schreckliche Verwendung von Generika – ediblecode

Verwandte Themen