Làm việc với các dạng và casting khác nhau trong C#
Trước đây, tôi đã nói làm toán cái pha trộn các dạng số là có vấn đề. Hãy xử lí cái đó bây giờ.
Hầu hết hoạt động toán học chỉ được xác định cho các toán hạng của cùng dạng. Ví dụ, phép cộng được xác định
giữa 2 ints và 2 double nhưng không giữa một int và một double.
Nhưng chúng ta thường cần làm việc với các dạng dữ liệu khác nhau trong các chương trình của chúng ta. C# có
một hệ thống các chuyển đổi giữa các dạng. Nó cho phép một dạng sẽ được chuyển đổi thành dạng khác để tạo điều
kiện cho các dạng pha trộn.
Có 2 hạng mục rộng của các chuyển đổi. Một chuyển đổi hẹp có nguy cơ mất dữ liệu trong quá trình chuyển đổi. Ví
dụ, chuyển đổi một long thành một byte có thể mất dữ liệu nếu số là lớn hơn cái một byte có thể chính xác trình
bày. Tương phản lại, một chuyển đổi rộng không có nguy cơ mất thông tin. Một long có thể trình bày mọi thứ một
byte có thể trình bày, nên không có nguy cơ trong thực hiện chuyển đổi.
Các chuyển đổi cũng có thể là công khai hay ngầm định. Một lập trình viên phải yêu cầu cụ thể cho một chuyển đổi
công khai xảy ra. Một chuyển đổi ngầm định sẽ xảy ra tự động mà không cần lập trình viên phát biểu nó.
Như một quy tắc chung, các chuyển đổi hẹp, cái có nguy cơ mất dữ liệu là công khai. Các chuyển đổi rộng, cái không
có khả năng mất dữ liệu luôn là ngầm định.