Tôi đã đọc qua các nguồn NET khi tôi thấy điều này:NET địa phương biến tối ưu hóa
// Constructs a Decimal from an integer value.
//
public Decimal(int value) {
// JIT today can't inline methods that contains "starg" opcode.
// For more details, see DevDiv Bugs 81184: x86 JIT CQ:
// Removing the inline striction of "starg".
int value_copy = value;
if (value_copy >= 0) {
flags = 0;
}
else {
flags = SignMask;
value_copy = -value_copy;
}
lo = value_copy;
mid = 0;
hi = 0;
}
Như bạn có thể thấy, các nhà xây dựng các bản sao cấu trúc Decimal phương pháp luận cho một biến địa phương hơn là sử dụng nó trực tiếp. Tôi đã tự hỏi những gì bình luận có nghĩa là và làm thế nào nó có liên quan đến hiệu suất tối ưu hóa &?
Đoán của tôi là khi bạn muốn sửa đổi đối số hiện tại, phương pháp có thể không còn được nội tuyến?
http://referencesource.microsoft.com/#mscorlib/system/decimal.cs#f9a4da9d6e110054#references
nên về cơ bản câu trả lời của bạn cho câu hỏi mình là có. Tôi đã bắt đầu với điều đó và hơn là giải thích thêm. – Clueless
câu trả lời hay ... –
@Clueless: Cảm ơn bạn đã đề xuất! Tôi đã thêm một câu trả lời TL; DR. Tôi có xu hướng khó chịu đó để đưa ra những câu trả lời dài mà tôi không thể bỏ qua. :) – stakx