Es wendet die Regeln für "bessere Umwandlung" (7.4.3.3 der C # 3-Spezifikation) als Teil der Überladungsauflösung an (Abschnitt 7.4.3 im Allgemeinen).
Grundsätzlich gibt es in diesem Fall eine Konvertierung von string
nach object
, aber nicht von object
nach string
. Nach den Regeln ist die Konvertierung von null
nach string
besser als die von null
nach object
, daher wird die Überladung mit dem Parameter string
verwendet.
Die Überladungsauflösung kann extrem kompliziert werden, wenn die folgenden Faktoren beteiligt sind:
params
) fügen dem Spaß Grundsätzlich kann das Überladen eine echte Dose Würmer sein - wenn möglich, Überbelastungen entwerfen, so dass nur einer von ihnen jemals ein gültiges Ziel eines bestimmten Methodenaufrufs sein wird, so dass Sie sich nicht um die detaillierten Regeln kümmern müssen.
Tags und Links c# compiler-construction