Giáo trình hướng dẫn truy cập phương thức gán đối tượng cho một giao diện đối lập trừu tượng p7
Số trang: 5
Loại file: pdf
Dung lượng: 446.78 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Mảng là một tập hợp có thứ tự của những đối tượng, tất cả các đối tượng này cùng một kiểu. Mảng trong ngôn ngữ C# có một vài sự khác biệt so với mảng trong ngôn ngữ C++ và một số ngôn ngữ khác, bởi vì chúng là những đối tượng. Điều này sẽ cung cấp cho mảng sử dụng các phương thức và những thuộc tính. Ngôn ngữ C# cung cấp cú pháp chuẩn cho
Nội dung trích xuất từ tài liệu:
Giáo trình hướng dẫn truy cập phương thức gán đối tượng cho một giao diện đối lập trừu tượng p7 Ngôn Ngữ Lập Trình C# // biến thành viên lưu giá trị thuộc tính Status private int status;}public class Tester{ static void Main() { // tạo một đối tượng myStruct myStruct theStruct = new myStruct(); theStruct.Status = -1; // khởi tạo Console.WriteLine(“theStruct.Status: {0}”, theStruct.Status); // thay đổi giá trị theStruct.Status = 2; Console.WriteLine(“Changed object”); Console.WriteLine(“theStruct.Status: {0}”, theStruct.Status); // gán cho giao diện // boxing ngầm định IStorable isTemp = (IStorable) theStruct; // thiết lập giá trị thông qua tham chiếu giao diện isTemp.Status = 4; Console.WriteLine(“Changed interface”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status); // thay đổi giá trị một lần nữa theStruct.Status = 6; Console.WriteLine(“Changed object.”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status); }}----------------------------------------------------------------------------- Kết quả:theStruct.Status: -1Changed object.theStruct.Status: 2Changed interfacetheStruct.Status: 2, isTemp: 4Changed object 203 Thực Thi Giao Diện Ngôn Ngữ Lập Trình C#theStruct.Status: 6, isTemp: 4-----------------------------------------------------------------------------Trong ví dụ 8.6, giao diện IStorable có một phương thức Read() và môt thuộc tính là Status.Giao diện này được thực thi bởi một cấu trúc tên là myStruct: public struct myStruct : IStorableĐoạn mã nguồn thú vị bên trong Tester. Chúng ta bắt đầu bằng việc tạo một thể hiện của cấutrúc và khởi tạo thuộc tính là –1, sau đó giá trị của status được in ra:0 myStruct theStruct = new myStruct(); theStruct.Status = -1; // khởi tạo Console.WriteLine(“theStruct.Status: {0}”, theStruct.status);Kết quả là giá trị của status được thiết lập: theStruct.Status = -1;Kế tiếp chúng ta truy cập thuộc tính để thay đổi status, một lần nữa thông qua đối tượng giátrị: // thay đổi giá trị theStruct.Status = 2; Console.WriteLine(“Changed object”); Console.WriteLine(“theStruct.Status: {0}”, theStruct.Status);kết quả chỉ ra sự thay đổi: Changed object theStruct.Status: 2 Tại điểm này, chúng ta tạo ra một tham chiếu đến giao diện IStorable, một đối tượng giátrị theStruct được boxing ngầm và gán lại cho tham chiếu giao diện. Sau đó chúng ta dùnggiao diện để thay đổi giá trị của status bằng 4: // gán cho một giao diện // boxing ngầm định IStorable isTemp = (IStorable) theStruct; // thiết lập giá trị thông qua tham chiếu giao diện isTemp.Status = 4; Console.WriteLine(“Changed interface”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status);như chúng ta đã thấy kết quả thực hiện có một điểm khác biệt: Changed interface theStruct.Status: 2, isTemp: 4Điều xảy ra là: đối tượng được giao diện tham chiếu đến thay đổi giá trị status bằng 4, nhưngđối tượng giá trị cấu trúc không thay đổi.Thậm chí có nhiều thú vị hơn khi chúng ta truy cậpphương thức thông qua bản thân đối tượng: 204 Thực Thi Giao Diện Ngôn Ngữ Lập Trình C# // than đổi giá trị lần nữa theStruct.Status = 6; Console.WriteLine(“Changed object”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status);kết quả đối tượng giá trị thay đổi nhưng đối tượng được boxing và được giao diện tham chịếukhông thay đổi: Changed object theStruct.Status: 6, isTemp: 4Ta thử xem đoạn mã IL để hiểu tham về cách thực hiện trên: Ví dụ 8.7: MSIL phát sinh từ ví dụ 8.6.-----------------------------------------------------------------------------method private hidebysig static void Main() il managed{ .entrypoint // Code size 206 (0xce) .maxstack 4 .local ([0] value class myStruct theStruct, [1] class IStorable isTemp, [2] int32 V_2) IL_0000: ldloca.s theStruct IL_0002: iniobj myStruct IL_0008: ldloca.s theStruct IL_000a: ldc.i4.ml IL_000b: call instance void myStruct::set_status(int32) IL_0010: ...
Nội dung trích xuất từ tài liệu:
Giáo trình hướng dẫn truy cập phương thức gán đối tượng cho một giao diện đối lập trừu tượng p7 Ngôn Ngữ Lập Trình C# // biến thành viên lưu giá trị thuộc tính Status private int status;}public class Tester{ static void Main() { // tạo một đối tượng myStruct myStruct theStruct = new myStruct(); theStruct.Status = -1; // khởi tạo Console.WriteLine(“theStruct.Status: {0}”, theStruct.Status); // thay đổi giá trị theStruct.Status = 2; Console.WriteLine(“Changed object”); Console.WriteLine(“theStruct.Status: {0}”, theStruct.Status); // gán cho giao diện // boxing ngầm định IStorable isTemp = (IStorable) theStruct; // thiết lập giá trị thông qua tham chiếu giao diện isTemp.Status = 4; Console.WriteLine(“Changed interface”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status); // thay đổi giá trị một lần nữa theStruct.Status = 6; Console.WriteLine(“Changed object.”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status); }}----------------------------------------------------------------------------- Kết quả:theStruct.Status: -1Changed object.theStruct.Status: 2Changed interfacetheStruct.Status: 2, isTemp: 4Changed object 203 Thực Thi Giao Diện Ngôn Ngữ Lập Trình C#theStruct.Status: 6, isTemp: 4-----------------------------------------------------------------------------Trong ví dụ 8.6, giao diện IStorable có một phương thức Read() và môt thuộc tính là Status.Giao diện này được thực thi bởi một cấu trúc tên là myStruct: public struct myStruct : IStorableĐoạn mã nguồn thú vị bên trong Tester. Chúng ta bắt đầu bằng việc tạo một thể hiện của cấutrúc và khởi tạo thuộc tính là –1, sau đó giá trị của status được in ra:0 myStruct theStruct = new myStruct(); theStruct.Status = -1; // khởi tạo Console.WriteLine(“theStruct.Status: {0}”, theStruct.status);Kết quả là giá trị của status được thiết lập: theStruct.Status = -1;Kế tiếp chúng ta truy cập thuộc tính để thay đổi status, một lần nữa thông qua đối tượng giátrị: // thay đổi giá trị theStruct.Status = 2; Console.WriteLine(“Changed object”); Console.WriteLine(“theStruct.Status: {0}”, theStruct.Status);kết quả chỉ ra sự thay đổi: Changed object theStruct.Status: 2 Tại điểm này, chúng ta tạo ra một tham chiếu đến giao diện IStorable, một đối tượng giátrị theStruct được boxing ngầm và gán lại cho tham chiếu giao diện. Sau đó chúng ta dùnggiao diện để thay đổi giá trị của status bằng 4: // gán cho một giao diện // boxing ngầm định IStorable isTemp = (IStorable) theStruct; // thiết lập giá trị thông qua tham chiếu giao diện isTemp.Status = 4; Console.WriteLine(“Changed interface”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status);như chúng ta đã thấy kết quả thực hiện có một điểm khác biệt: Changed interface theStruct.Status: 2, isTemp: 4Điều xảy ra là: đối tượng được giao diện tham chiếu đến thay đổi giá trị status bằng 4, nhưngđối tượng giá trị cấu trúc không thay đổi.Thậm chí có nhiều thú vị hơn khi chúng ta truy cậpphương thức thông qua bản thân đối tượng: 204 Thực Thi Giao Diện Ngôn Ngữ Lập Trình C# // than đổi giá trị lần nữa theStruct.Status = 6; Console.WriteLine(“Changed object”); Console.WriteLine(“theStruct.Status: {0}, isTemp: {1}”, theStruct.Status, isTemp.Status);kết quả đối tượng giá trị thay đổi nhưng đối tượng được boxing và được giao diện tham chịếukhông thay đổi: Changed object theStruct.Status: 6, isTemp: 4Ta thử xem đoạn mã IL để hiểu tham về cách thực hiện trên: Ví dụ 8.7: MSIL phát sinh từ ví dụ 8.6.-----------------------------------------------------------------------------method private hidebysig static void Main() il managed{ .entrypoint // Code size 206 (0xce) .maxstack 4 .local ([0] value class myStruct theStruct, [1] class IStorable isTemp, [2] int32 V_2) IL_0000: ldloca.s theStruct IL_0002: iniobj myStruct IL_0008: ldloca.s theStruct IL_000a: ldc.i4.ml IL_000b: call instance void myStruct::set_status(int32) IL_0010: ...
Tìm kiếm theo từ khóa liên quan:
giáo trình đại học tài liệu mạng giáo trình cơ điện giáo trình thiết kế tài liệu kế toánTài liệu liên quan:
-
Giáo trình phân tích một số loại nghiệp vụ mới trong kinh doanh ngân hàng quản lý ngân quỹ p5
7 trang 474 0 0 -
MARKETING VÀ QUÁ TRÌNH KIỂM TRA THỰC HIỆN MARKETING
6 trang 302 0 0 -
122 trang 217 0 0
-
QUY CHẾ THU THẬP, CẬP NHẬT SỬ DỤNG CƠ SỞ DỮ LIỆU DANH MỤC HÀNG HÓA BIỂU THUẾ
15 trang 212 1 0 -
BÀI GIẢNG KINH TẾ CHÍNH TRỊ MÁC - LÊNIN - TS. NGUYỄN VĂN LỊCH - 5
23 trang 210 0 0 -
Giáo trình hướng dẫn phân tích các thao tác cơ bản trong computer management p6
5 trang 201 0 0 -
Giáo trình chứng khoán cổ phiếu và thị trường (Hà Hưng Quốc Ph. D.) - 4
41 trang 200 0 0 -
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGÂN HÀNG ĐỀ THI HẾT HỌC PHẦN HỌC PHẦN: TOÁN KINH TẾ
9 trang 177 0 0 -
BÀI GIẢNG LÝ THUYẾT MẠCH THS. NGUYỄN QUỐC DINH - 1
30 trang 176 0 0 -
Giáo trình phân tích giai đoạn tăng lãi suất và giá trị của tiền tệ theo thời gian tích lũy p10
5 trang 170 0 0