Upcast obligatorisch, wenn unterschiedliche Überlastungen auftreten

8

Hier geht es überhaupt nicht um Windows-Formulare, sondern nur um den "Hintergrund".

Ich spielte mit Windows Forms herum, als ich einen Fehler in einem AddRange für einen MenuStrip.Items bekam, der ToolStripMenuItem in ToolStripItem

umsetzen musste

Aber ich habe bereits ein AddRange für ein Form.Controls , vor dem keine Umwandlungen erforderlich waren.

Nach ein paar Experimenten habe ich festgestellt, dass der Fehler auftritt, wenn es für dieses AddRange mehrere Überladungen gibt, also habe ich versucht, meinen Gedanken zu validieren:

%Vor%

Die Frage ist einfach warum; Aus meiner Sicht ist der Aufruf nicht mehrdeutig.

    
Sehnsucht 07.07.2016, 11:37
quelle

1 Antwort

2

Nach dem Lesen der 14.4.3 F # -Spezifikation (angedeutet durch Gustavo , ein großes Lob an ihn)

  

Der F # -Compiler bestimmt, ob die Flexibilität nach der expliziten Instanziierung, aber vor jedem eingefügt werden soll   Argumente werden überprüft.

Ich verstehe, dass Flexibilität für eine Methode, die Überladungen aufweist, nie eingefügt wird, weil sie eine Argumentprüfung zur Auswahl benötigen würde.

    
Sehnsucht 07.07.2016 12:55
quelle