Những chủ đề tiến bộ trong C# - Các ép kiểu do người dùng định nghĩa – Phần 2

Ép kiểu giữa lớp dẫn xuất và lớp cơ sở Để xem làm thế nào việc ép kiểu này làm, ta xem xét 2 lớp Mybase và Myderived , trong đó Mydrived được dẫn xuất trực tiếp hoặc gián tiếp từ lớp cơ sở đầu tiên từ lớp Myderived đến Mybase ; luôn luôn ( giả sử hàm dựng có giá trị)có thể viết : MyDerived derivedObject = new MyDerived(); MyBase baseCopy = derivedObject; Trong trường hợp này,chúng ta ép kiểu không tường minh từ myderived đến mybase. . | Những chủ đề tiến bộ trong C Các ép kiểu do người dùng định nghĩa - Phần 2 Ép kiểu giữa lớp dẫn xuất và lớp cơ sở Để xem làm thế nào việc ép kiểu này làm ta xem xét 2 lớp Mybase và Myderived trong đó Mydrived được dẫn xuất trực tiếp hoặc gián tiếp từ lớp cơ sở đầu tiên từ lớp Myderived đến Mybase luôn luôn giả sử hàm dựng có giá trị có thể viết MyDerived derivedObject new MyDerived MyBase baseCopy derivedObject Trong trường hợp này chúng ta ép kiểu không tường minh từ myderived đến mybase. điều này làm việc bởi vì luật là bất kì tham chiếu đến 1 kiểu mybase được cho phép để chuyển thành đối tượng của lớp mybase hoặc đến đối tượng bất kì được dẫn xuất từ lớp ngôn ngữ lập trình hướng đối tượng thể hiện của lớp dẫn xuất là thể hiện của một lớp cơ sở cộng thêm với một thứ gì đó thêm. tất cả chức năng và thuộc tính được định nghĩa trong lớp cơ sở cũng được định nghĩa trong lớp dẫn xuất . Bây giờ ta có thể viết MyBase derivedObject new MyDerived MyBase baseObject new MyBase MyDerived derivedCopy1 MyDerived derivedObject OK MyDerived derivedCopy2 MyDerived baseObject Tất cả các câu lệnh trên là hợp lệ trong C và minh họa việc ép kiểu từ lớp cơ sở sang lớp dẫn xuất. tuy nhiên câu lệnh cuối sẽ tung ra biệt lệ khi thực thi. Chú ý rằng những lệnh ép kiểu mà trình biên dịch cung cấp mà chuyển giữa lớp cơ sở và lớp dẫn xuất thì không thực sự chuyển bất cứ dữ liệu nào trên các đối cả chúng làm là thiết lập một sự tham chiếu mới để quy cho một đối tượng nếu nó hợp lệ cho việc chuyển đổi .những lệnh ép kiểu này thì rất khác trong tự nhiên từ những cái mà ta thường xuyên tự định dụ trong ví dụ Simplecurrency chúng ta định nghĩa việc ép kiểu là chuyển giữa 1 kiểu tiền tệ sang kiểu số thực. trong ép kiểu thực-thành-currency chúng ta thực sự tạo một cấu trúc currency mới và khởi tạo nó với giá trị được yêu cầu .những lệnh ép kiểu tiền định nghĩa giữa những lớp cơ s ở và lớp dẫn xuất không làm điều ta thực sự chuyển 1 thể hiện Mybase thành một .

Không thể tạo bản xem trước, hãy bấm tải xuống
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.