Optionale VB-Parameter sind in C # erforderlich

8

Ähnlich wie dies , aber mit einer Drehung.

VB-Funktionsdeklaration:

%Vor%

Beim Aufruf von C # (andere Lösung habe ich über .dll kopiert)

  

Fehler 164 Keine Überladung für Methode 'MyFunc' nimmt 2 Argumente

Metadaten zeigen die Funktion an:

%Vor%

Warum hat ein Optional es geschafft, während der andere nicht?

    
JNF 18.07.2013, 08:02
quelle

2 Antworten

9

C # unterstützt die optionalen Parameter ref nicht. Wenn Sie obj zu einem ByValue -Parameter ändern, sollte es in Ordnung sein.

Wenn Sie versuchen, einen optionalen ref -Parameter in C # zu deklarieren, verstoßen Sie gegen Abschnitt 10.6.1 der C # 4-Spezifikation:

  

Ein fester Parameter mit einem Standardargument wird als optionaler Parameter bezeichnet.

     

...

     

Ein ref oder out Parameter kann kein Standard-Argument haben.

Die Ausnahme ist für COM, wo ref -Parameter extrem häufig sind. Wenn der C # -Compiler weiß, dass er mit einer COM-Komponente zu tun hat, erlaubt es Ihnen, optionale ref -Parameter wegzulassen.

    
Jon Skeet 18.07.2013, 08:04
quelle
5

C # erlaubt keine optionalen Parameter. Das ist der Grund.

Siehe diese andere Frage + Antwort:

Matías Fidemraizer 18.07.2013 08:05
quelle