Tôi đang viết một trò chơi XNA, nơi tôi thực hiện kiểm tra va chạm trên mỗi pixel. Vòng lặp kiểm tra điều này làm như vậy bằng cách chuyển một int và bitwise ORing và thường khó đọc và hiểu.Tôi có thể kiểm tra xem trình biên dịch C# có nêu một lời gọi phương thức không?
Tôi muốn thêm các phương thức riêng tư như private bool IsTransparent(int pixelColorValue)
để làm cho vòng lặp dễ đọc hơn, nhưng tôi không muốn chi phí cuộc gọi phương thức vì đây là mã có hiệu suất rất nhạy cảm.
Có cách nào để buộc trình biên dịch nội tuyến cuộc gọi này hoặc tôi sẽ làm tôi chỉ hy vọng rằng trình biên dịch sẽ thực hiện tối ưu hóa này?
Nếu không có cách nào để ép buộc điều này, có cách nào để kiểm tra xem phương pháp đã được gạch chân hay chưa, có đọc được cách tháo gỡ không? Liệu phương pháp sẽ hiển thị trong sự phản ánh nếu nó được inlined và không có người gọi khác tồn tại?
Chỉnh sửa: Tôi không thể ép buộc, vì vậy tôi có thể phát hiện không?
Bạn có thể (trong .Net 4.5). sử dụng: '[MethodImpl (MethodImplOptions.AggressiveInlining)]' – Mahmoodvcs