C # Der Aufruf ist zwischen den folgenden Methoden oder Eigenschaften nicht eindeutig: F (double) 'und' F (dezimal) '[duplizieren]

8

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.

    
Kate Zabelova 03.04.2016, 12:06
quelle

1 Antwort

7

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.

    
shadeglare 03.04.2016, 12:23
quelle

Tags und Links