Dieser Code funktioniert in C # sehr gut, trotz der Tatsache, dass int implizit in double und float konvertiert werden kann:
%Vor%Also, warum wird dieser Code nicht kompiliert? (Der Aufruf ist zwischen den folgenden Methoden oder Eigenschaften nicht eindeutig: 'UserQuery.F (double)' und 'UserQuery.F (decimal)')
%Vor% Ich habe lediglich die float
Variante der Funktion durch eine decimal
Variante ersetzt.
Es gibt keine impliziten Konvertierungen zwischen Fließkommatypen und dem Dezimaltyp.
Wenn es Methoden mit float, doppelten Signaturen gibt, ist es kein Problem, eine kompatible Methode zu bestimmen, die auf minimalen Abstufungsanforderungen basiert (die float Methode wird gewählt).
Es gibt keine solche Regel, wenn es sich um Float-Point-Typen und Dezimalzahlen handelt, da es keine implizite Priorität zwischen Double und Decimal gibt und sie explizit angegeben werden muss.