Các trường chỉ đọc ( Readonly fields)
Số trang: 3
Loại file: pdf
Dung lượng: 82.10 KB
Lượt xem: 15
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:
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. 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ợi hơ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...
Nội dung trích xuất từ tài liệu:
Các trường chỉ đọc ( Readonly fields) 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ệmhằng cũng giống như mọi ngôn ngữ khác. Tuy nhiên, hằng thì không cầnthiết dùng trong mọi trườ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ươngtrình thực thi. C# hỗ trợ một kiểu biến khác có lợi hơn trong trường hợp nàylà: 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ạogiá trị cho một trường chỉ đọc trong constructor. Và nó cho phép một trườngchỉ đọc là một thể hiện(instance) hay một trường static có các giá trị khácnhau 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ốnhạn chế số tài liệ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âng cấ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 ta cần một trường để mô tả giá trị lớnnhất này. Trường này chỉ được đọc tại mỗi lúc chươ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ủa chương trình thực thi. Và đó là lý do tại sao nó được khởi tạo trongmột constructor tĩnh. Tình huống khác, nếu mọi tài liệu chúng ta chỉnh sửacó một ngày được tạo ra và chúng ta không muốn người sử dụng chỉnh sửanó. Kiểu ngày thì được mô tả trong lớp system.Datetimepublic 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.
Nội dung trích xuất từ tài liệu:
Các trường chỉ đọc ( Readonly fields) 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ệmhằng cũng giống như mọi ngôn ngữ khác. Tuy nhiên, hằng thì không cầnthiết dùng trong mọi trườ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ươngtrình thực thi. C# hỗ trợ một kiểu biến khác có lợi hơn trong trường hợp nàylà: 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ạogiá trị cho một trường chỉ đọc trong constructor. Và nó cho phép một trườngchỉ đọc là một thể hiện(instance) hay một trường static có các giá trị khácnhau 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ốnhạn chế số tài liệ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âng cấ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 ta cần một trường để mô tả giá trị lớnnhất này. Trường này chỉ được đọc tại mỗi lúc chươ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ủa chương trình thực thi. Và đó là lý do tại sao nó được khởi tạo trongmột constructor tĩnh. Tình huống khác, nếu mọi tài liệu chúng ta chỉnh sửacó một ngày được tạo ra và chúng ta không muốn người sử dụng chỉnh sửanó. Kiểu ngày thì được mô tả trong lớp system.Datetimepublic 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ìm kiếm theo từ khóa liên quan:
lập trình tài liệu lập trình kỹ thuật lập trình giáo trình C ngôn ngữ lập trình C tự học lập trình với CGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 208 0 0 -
101 trang 200 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 167 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 133 0 0 -
161 trang 130 1 0
-
Bài giảng lập trình c căn bản - Trường Apptech - Chương 4
27 trang 118 0 0