2013-02-26 28 views
8

Tôi có một câu hỏi mà tôi không thể tìm thấy câu trả lời. Hãy tưởng tượng rằng tôi có hai số thập phân. Khi tôi muốn tổng hợp các con số nào và tại sao tôi nên sử dụng?Tôi nên sử dụng cái nào? decimal.Add() hoặc "+"

option1:

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

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

option2:

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

var result = num1 + num2; 
+7

Bạn có thể sử dụng tài khoản mà bạn có thể đọc dễ dàng hơn. – Freeman

+4

Ưu tiên toán tử + hoặc mã của bạn có thể kết thúc vào wtf hàng ngày. – Guillaume

+0

Họ sẽ mang lại kết quả tương tự, vì vậy bạn có thể sử dụng như bạn muốn. – Alpay

Trả lời

11

Họ là hoàn toàn giống nhau. Lớp Decimal đã quá tải toán tử + gọi cùng một phương thức. Vì vậy, bạn nên sử dụng cái mà bạn cảm thấy dễ đọc hơn. Cá nhân tôi thích cách tiếp cận thứ hai.

+ điều hành (biếu không của phản xạ):

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

và phương thức Add:

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

tương đương nghiêm ngặt về IL và hiệu suất.

0

Cả hai C# cung cấp cho bạn nhiều cách để giải quyết các vấn đề bạn chọn một cách mà bạn thấy thoải mái hơn. Cá nhân tôi sử dụng num1 + num2.

0

Cả hai đều giống hệt nhau, chỉ khác nhau về ngoại hình.

Các vấn đề liên quan