Danh mục

Hướng Đối Tượng Trong C# part 6

Số trang: 2      Loại file: pdf      Dung lượng: 124.77 KB      Lượt xem: 17      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các trường chỉ đọc( Readonly fields): Hằng là một biến mà chứa một giá trị không thay đổi. Trong C# khái niệm hằng cũng giống như mọi ngôn ngữ khác. Tuy nhiên, hằng thì không cần thiết dùng trong mọi trường hợp
Nội dung trích xuất từ tài liệu:
Hướng Đối Tượng Trong C# part 6Các trường chỉ đọc( Readonly fields):Hằng là một biến mà chứa một giá trị không thay đổi. Trong C# khái niệm hằng cũnggiống như mọi ngôn ngữ khác. Tuy nhiên, hằng thì không cần thiết dùng trong mọitrường hợp. Trong một số trường hợp, bạn có một số biến không bị thay đổi nhưng giá trịcủa nó chỉ được khởi tạo khi chương trình thực thi. C# hỗ trợ một kiểu biến khác có lợihơn trong trường hợp này là: các trường chỉ đọc.Từ khoá readonly thì linh động hơn từ khoá const. Bởi vì bạn có thể khởi tạo giá trị chomột trường chỉ đọc trong constructor. Và nó cho phép một trường chỉ đọc là một thểhiện(instance) hay một trường static có các giá trị khác nhau trong mỗi thể hiện của lớpđó. Nếu bạn muốn một trường chỉ đọc là static thì bạn phải khai báo tường minh.Ví dụ: chúng ta có một chương trình chỉnh sửa tài liệu, và chúng ta muốn hạn chế số tàiliệu được sửa đồng thời. Nhưng bởi vì ta bán phần mềm đó và người sử dụng có thể nângcấp bản của họ. Chúng ta không thể cố định số lượng lớn nhất trong mã nguồn. Chúng tacần một trường để mô tả giá trị lớn nhất này. Trường này chỉ được đọc tại mỗi lúcchương trình được ném ra:public class DocumentEditor { public static readonly uint MaxDocuments; static DocumentEditor() { // code here will read in the value of the max no. of documents. // for the sake of argument, lets assume the result is 20 MaxDocuments = 20; }Trong ví dụ trên thì giá trị lớn nhất chỉ được cần được lưu trữ khi một thể hiện củachương trình thực thi. Và đó là lý do tại sao nó được khởi tạo trong một constructor tĩnh.Tình huống khác, nếu mọi tài liệu chúng ta chỉnh sửa có một ngày được tạo ra và chúngta không muốn người sử dụng chỉnh sửa nó. Kiểu ngày thì được mô tả trong lớpsystem.Datetime public class Document { public readonly DateTime CreationDate; public Document() { // read in creation date from file. Assume result is 1 Jan 2002 // but in general this can be different for different instances // of the class CreationDate = new DateTime(2002, 1, 1); } }Từ hai ví dụ trên ta thấy CreationDate and MaxDocuments là các trường chỉ đọc và nókhông thể được gán giá trị bên ngoài constructor.

Tài liệu được xem nhiều: