Tôi tò mò muốn biết nếu tất cả các chuyển đổi trong C# kết quả trong boxing.
số Chỉ chuyển đổi quyền Anh dẫn đến đấm bốc, vì thế mà cái tên 'đấm bốc chuyển đổi'. Boxing chuyển đổi đều built- trong các chuyển đổi từ các loại giá trị sang loại tham chiếu - đến một lớp mà loại giá trị kế thừa từ hoặc đến giao diện mà nó thực hiện (hoặc giao diện tương thích với giao diện mà nó thực hiện, thông qua chuyển đổi tham chiếu covariant hoặc contravariant).
đều là conver sions một hoạt động tốn kém?
Không. Chuyển đổi nhận dạng bằng 0 vì trình biên dịch có thể tách chúng hoàn toàn.
Chi phí chuyển đổi tham chiếu ngầm định và rõ ràng là gì?
Chuyển đổi tham chiếu ngầm định là chi phí bằng không. Trình biên dịch có thể tách chúng hoàn toàn. Đó là, chuyển đổi từ hươu cao cổ thành loại động vật cơ sở của nó, hoặc con hươu cao cổ đến kiểu giao diện thực hiện IAmATallMammal, là miễn phí.
Chuyển đổi tham chiếu rõ ràng liên quan đến kiểm tra thời gian chạy để xác minh rằng tham chiếu thực tế tham chiếu đến đối tượng thuộc loại mong muốn.
Kiểm tra thời gian chạy đó có "tốn kém" hay không phụ thuộc vào ngân sách của bạn.
chi phí đó có thể được đo chính xác không?
Chắc chắn. Quyết định tài nguyên nào có liên quan đến bạn - thời gian, nói - và sau đó cẩn thận đo mức tiêu thụ thời gian của bạn bằng đồng hồ bấm giờ.
Một câu hỏi mà bạn không hỏi nhưng có lẽ nên có:
chuyển đổi đắt nhất là gì?
Chuyển đổi do người dùng xác định không gì khác ngoài đường cú pháp cho cuộc gọi phương thức; phương pháp đó có thể mất nhiều thời gian tùy ý, giống như bất kỳ phương pháp nào.
Chuyển đổi động bắt đầu trình biên dịch một lần nữa khi chạy; trình biên dịch có thể mất nhiều thời gian tùy ý để thực hiện phân tích kiểu, tùy thuộc vào mức độ khó khăn của một vấn đề phân tích mà bạn chọn để ném vào nó.
Không có quyền liên quan đến quyền lực khi truyền từ một loại tham chiếu này sang loại tham chiếu khác. – BrokenGlass
Có thể đo lường một cách thích hợp không? nên tránh nó? –
Trong khi boxing không liên quan khi truyền một loại tham chiếu này sang loại tham chiếu khác, chuyển đổi có thể. Việc chuyển đổi một loại tham chiếu sang loại tham chiếu không liên quan khác có thể tốn kém. –