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
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:
Die Frage ist einfach warum; Aus meiner Sicht ist der Aufruf nicht mehrdeutig.
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.
Tags und Links f# ambiguous-call overload-resolution casting method-overloading