2013-02-26 11 views
8

Mam pytanie, na które nie mogę znaleźć odpowiedzi. Wyobraź sobie, że mam dwie liczby dziesiętne. Kiedy chcę zsumować liczby, które powinienem podać i dlaczego?Których użyć? decimal.Add() lub "+"

opcja1:

var num1 = 10.456m; 
var num2 = 12.033m; 

var result = decimal.Add(num1, num2); 

opcja2:

var num1 = 10.456m; 
var num2 = 12.033m; 

var result = num1 + num2; 
+7

Możesz użyć tego, który możesz przeczytać łatwiej. – Freeman

+4

Preferuj operator + lub twój kod może kończyć się na dziennym wtf. – Guillaume

+0

Otrzymają one ten sam wynik, więc możesz użyć, jak chcesz. – Alpay

Odpowiedz

11

Są absolutnie takie same. Klasa Decimal przeładowała operatora + wywołując tę ​​samą metodę. Więc powinieneś użyć tego, który uważasz za bardziej czytelny. Osobiście wolę drugie podejście.

+ operatora (dzięki uprzejmości reflektora)

[SecuritySafeCritical, __DynamicallyInvokable] 
public static decimal operator +(decimal d1, decimal d2) 
{ 
    FCallAddSub(ref d1, ref d2, 0); 
    return d1; 
} 

i sposób dodawania:

[SecuritySafeCritical, __DynamicallyInvokable] 
public static decimal Add(decimal d1, decimal d2) 
{ 
    FCallAddSub(ref d1, ref d2, 0); 
    return d1; 
} 

Ścisłe równoważne pod względem IL i wydajności.

0

Zarówno C# daje wiele sposobów rozwiązywania problemów, które wybrałeś, które uznasz za wygodniejsze. Osobiście używam num1 + num2.

0

Obie są dokładnie takie same, różnią się jedynie wyglądem.

Powiązane problemy