Fehler bei der Rundungserweiterung auf dezimal - nicht mit einer Instanzreferenz erreichbar; qualifiziere es stattdessen mit einem Typnamen

8

Ich habe die Erweiterungsmethoden mehrere Male verwendet und dieses Problem noch nicht erkannt. Hat jemand irgendwelche Ideen, warum dies einen Fehler verursacht?

%Vor%

Verwendung:

%Vor%

newAmount.Round (3) wirft den Compilerfehler:

%Vor%     
mservidio 12.08.2011, 18:17
quelle

2 Antworten

8

Der Konflikt hier ist ein Konflikt zwischen Ihrer Erweiterungsmethode und decimal.Round . Die einfachste Lösung ist hier, wie bereits festgestellt wurde, einen anderen Namen zu verwenden. Methoden vom Typ immer haben Vorrang vor Erweiterungsmethoden, sogar bis zu Konflikten mit static Methoden.

    
Marc Gravell 12.08.2011, 19:27
quelle
2

Tut mir leid, dass ich meine Frage so schnell beantwortet habe. Innerhalb einer Sekunde, in der ich das gepostet habe, dämmerte es mir, dass der Compiler vielleicht nicht "Round" als Name mochte. Also habe ich es in "RoundNew" geändert und es hat funktioniert. Eine Art Namenskonflikt, denke ich ... '

Keine Fehler mehr:

%Vor%     
mservidio 12.08.2011 18:19
quelle