Tài liệu lập trình - giải thích SET và GET trong C#
Số trang: 15
Loại file: doc
Dung lượng: 216.50 KB
Lượt xem: 14
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:
Trong 1 class ta c n phân bi t rõ và làm quen các khái ni ầ ệ ệm sau: trường(field),biến(property) và phương thức (method). Sau đây mình ví dụ 1 class HocSinhpublic class HocSinh{string hoten;//khai báo thế này thì hoten là 1 truong(field) dạng private// giống khai báo private string hoten;public string HoTen //khai bao 1 bien(property) co ten la HoTen
Nội dung trích xuất từ tài liệu:
Tài liệu lập trình - giải thích SET và GET trong C#Trong 1 class ta cần phân biệt rõ và làm quen các khái niệm sau: trường(field),biến(property) và phương thức (method). Sau đây mình ví dụ 1 class HocSinhpublic class HocSinh{ string hoten;//khai báo thế này thì hoten là 1 truong(field) dạng private // giống khai báo private string hoten; public string HoTen //khai bao 1 bien(property) co ten la HoTen { get{ return hoten;}//đọc giá trị lên từ field hoten gán cho biến HoTen set { hoten = value;}//lấy giá trị(value) truyền vào cho biến để gán cho trường } public HocSinh()//phương thức mặc định {} public int TimHocSinh(string ten)//day la 1 phuong thuc { //code xu ly tim hoc sinh }}Bạn nhìn lại đoạn code trên và ta thấy rằng khai báo biến khác với 1 phươngthức là nó không có phần dấu (). Phương thức là ta dùng viết code Tìm, Thêm ,Xóa, Sửa..hoặc 1 thao tác gì đó do bạn tự viết. Đa số chúng ta ít khai báo biến. vìsao? vì đa số các bạn mới làm quen lập trinh C# thường khai báo 1 trường(field)ở dạng public(vd: public string hoten;).Nhưng để baỏ mật các lập trình viên chuyên nghiệp hay khai báo ở dạng privatenhư ví dụ trên. Nếu khai báo private như vậy thì nếu bạn đang ở 1 class khác bạnsẽ không nhìn thấy 1 trường private và sẽ không truy xuất đc nó. Do vậy trong C#hỗ trợ khai báo biến đi cùng với 2 phương thức get và set để giúp chúng ta giảiquyết vấn đề vừa nêu. Ứng với mỗi 1 trường private thì ta nên khai báo 1 biến vàbiến cùng kiểu với trường. ở đoạn code trên do trường hoten có kiểu string nênkhai báo biến HoTen phải có kiểu trả về là string.Ta dùng get để lấy giá trị của field gán cho biến(property), set dùng giá trị củabiến để thiết lập giá trị cho field.Nếu như 1 biến nào đó bạn chỉ cho người ta lấy(đọc) giá trị từ field lên thôi thìbạn chỉ cần dùng phương thức get.Ví dụ ở 1 class khác ta khai báoHocSinh hs = new HocSinh();khi bạn gọi: hs.HoTen = NguyenVanA thì phương thức set{} sẽ được gọi, saukhi chạy xong câu lệnh này thì thực chất hs.hoten =NguyenVanA do set{hoten =value;}và khi bạn gọi: string name = hs.HoTen thì phương thức get{} sẽ được gọi, giá trịcủa hs.HoTen là giá trị đọc lên từ hs.hoten với lệnh get {return hoten;}Tác dụng của 2 Phương thức get và set giúp cho việc truy xuất giá trị của 1 1trường được bảo mật hơn. Chúng như là công cụ trung gian để vận chuyển giátrị của field với giá trị người dùng(nhập dl). Và khi đã làm như vậy ta có thể quêntrường đi và thao tác với biến như là mình đang thao tác với trường vậy.Có 1 cái hay nữa trong cách dùng phương thức set là ta có thể kiểm soát, kiểm tragiá nhập vào có hợp lệ theo ý ta ko. nếu hợp lệ thì ta mới cho gán vàotrường(field). Ví dụ ta có thêm trường maHS để lưu thông tin mã học sinh vớiyêu cầu mã có chiều dài là 7. thì ta làm string maHS; public string MaHS { get { return maHS; } set { while (value.Length != 7)// kiem tra neu ko hop le thi nhap lai { Console.Write(\n Ma khong hop le! Nhap lai = ); value = Console.ReadLine(); } maHS = value;//khi nao chieu dai chuoi nhap vao la 7 thi moi gan chotrường maHS } } như sau:Lập trình C# | Bàn về kích thước và vị trí của FormLớp Form cung cấp những thuộc tính Location (vị trí) và Size (kích thước) màmỗi ô control đều có, nhưng với một “méo mó” một chút. Thuộc tính Locationcho biết khoảng cách ở góc top left của cửa sổ so với góc top left của màn hình(hoặc desktop area) trở đi. Ngoài ra, Location sẽ bị phớt lờ trừ khi thuộc tínhStartPosition được cho về Manual. Các trị của thuộc tính StartPosition sẽ lấy từenum FormStartPosition, như dưới đây:Các trị Mô tảCenterParent Nếu form được hiển thị theo kiểu modal, thì nó sẽ được canh giữatương đối với biểu mẫu hiển thị nó. Nếu biểu mẫu này không có cha-mẹ, thì đặtđể này giống như WindowsDefaultLocationCenterScreen form được căn giữa màn hình. Ví dụ: StartPosition = 2FormStartPosition.CenterScreenManual form sẽ được canh theo vị trí được khai báo bởi thuộc tính Location,tương đối so với top left của desktop areaWindowsDefaultLocation form được hiển thị theo vị trí mặc nhiên của Windows.Nói cách khác, sẽ không biết chính xác biểu mẫu sẽ được canh về đâuWindowsDefaultBound form được hiển thị theo vị trí mặc nhiên của Windows vớimột kích thước mặc nhiên (thuộc tính Size bị bỏ qua). Thiết đặt này ít khi dùngtới vì thông thường người ta muốn điều khiển chính xác kích thước của biểumẫuThỉnh thoảng, bạn cần cẩn thận 1 chút khi chọn vị trí và kích thước đối form củabạn. Thí dụ, bạn có thể vô tình tạo ra 1 form quá lớn để có thể thích nghi với 1màn hình có độ phân giải thấp. Nếu bạn làm việc với 1 ứng dụng chỉ độc nhất 1form, giải pháp tốt nhất là tạo 1 form có thể thay đổi kích thước. Nếu bạn dùng 1ứng dụng với nhiều cửa sổ bay lung tung thì câu trả lời là không đơn giản chútnào.Tất nhiên, bạn sẽ nghĩ mình có thể giới hạn vị trị cửa sổ vào vị trí mà những mànhình có độ phân giải nhỏ có thể hỗ trợ, nhưng làm vậy thì thiệt thòi cho nhữngngười sử dụng đang sở hữu màn hình có độ phân giải cao (do nhu cầu về thiếtkế đồ họa,đọc biểu mẫu,…). Và câu hỏi mà tôi đặt ra cho bạn là phải tìm vị tríthích hợp nhất của form đối với màn hình của người sử dụng. Muốn giải quyết,bạn cần tìm lại những thông tin cơ bản đối với mặt bằng màn hình có sẵn sửdụng đến lớp ScreenCode:private void Form_Load(sender,EventArgs e) //event Load của Form{Screen scr = Screen.PrimaryScreen; //đi lấy màn hình chínhthis.Left = (scr.WorkingArea.Width – this.Width)/2; 3this.Top = (scr.WordkingArea.Height – this.Height)/2;}Ví dụ trên sử dụng thuộc tính WorkingArea của lớp Screen. Thuộc tính này trảvề vùng làm việc của màn hình, trừ đi vùng chiếm dụng ...
Nội dung trích xuất từ tài liệu:
Tài liệu lập trình - giải thích SET và GET trong C#Trong 1 class ta cần phân biệt rõ và làm quen các khái niệm sau: trường(field),biến(property) và phương thức (method). Sau đây mình ví dụ 1 class HocSinhpublic class HocSinh{ string hoten;//khai báo thế này thì hoten là 1 truong(field) dạng private // giống khai báo private string hoten; public string HoTen //khai bao 1 bien(property) co ten la HoTen { get{ return hoten;}//đọc giá trị lên từ field hoten gán cho biến HoTen set { hoten = value;}//lấy giá trị(value) truyền vào cho biến để gán cho trường } public HocSinh()//phương thức mặc định {} public int TimHocSinh(string ten)//day la 1 phuong thuc { //code xu ly tim hoc sinh }}Bạn nhìn lại đoạn code trên và ta thấy rằng khai báo biến khác với 1 phươngthức là nó không có phần dấu (). Phương thức là ta dùng viết code Tìm, Thêm ,Xóa, Sửa..hoặc 1 thao tác gì đó do bạn tự viết. Đa số chúng ta ít khai báo biến. vìsao? vì đa số các bạn mới làm quen lập trinh C# thường khai báo 1 trường(field)ở dạng public(vd: public string hoten;).Nhưng để baỏ mật các lập trình viên chuyên nghiệp hay khai báo ở dạng privatenhư ví dụ trên. Nếu khai báo private như vậy thì nếu bạn đang ở 1 class khác bạnsẽ không nhìn thấy 1 trường private và sẽ không truy xuất đc nó. Do vậy trong C#hỗ trợ khai báo biến đi cùng với 2 phương thức get và set để giúp chúng ta giảiquyết vấn đề vừa nêu. Ứng với mỗi 1 trường private thì ta nên khai báo 1 biến vàbiến cùng kiểu với trường. ở đoạn code trên do trường hoten có kiểu string nênkhai báo biến HoTen phải có kiểu trả về là string.Ta dùng get để lấy giá trị của field gán cho biến(property), set dùng giá trị củabiến để thiết lập giá trị cho field.Nếu như 1 biến nào đó bạn chỉ cho người ta lấy(đọc) giá trị từ field lên thôi thìbạn chỉ cần dùng phương thức get.Ví dụ ở 1 class khác ta khai báoHocSinh hs = new HocSinh();khi bạn gọi: hs.HoTen = NguyenVanA thì phương thức set{} sẽ được gọi, saukhi chạy xong câu lệnh này thì thực chất hs.hoten =NguyenVanA do set{hoten =value;}và khi bạn gọi: string name = hs.HoTen thì phương thức get{} sẽ được gọi, giá trịcủa hs.HoTen là giá trị đọc lên từ hs.hoten với lệnh get {return hoten;}Tác dụng của 2 Phương thức get và set giúp cho việc truy xuất giá trị của 1 1trường được bảo mật hơn. Chúng như là công cụ trung gian để vận chuyển giátrị của field với giá trị người dùng(nhập dl). Và khi đã làm như vậy ta có thể quêntrường đi và thao tác với biến như là mình đang thao tác với trường vậy.Có 1 cái hay nữa trong cách dùng phương thức set là ta có thể kiểm soát, kiểm tragiá nhập vào có hợp lệ theo ý ta ko. nếu hợp lệ thì ta mới cho gán vàotrường(field). Ví dụ ta có thêm trường maHS để lưu thông tin mã học sinh vớiyêu cầu mã có chiều dài là 7. thì ta làm string maHS; public string MaHS { get { return maHS; } set { while (value.Length != 7)// kiem tra neu ko hop le thi nhap lai { Console.Write(\n Ma khong hop le! Nhap lai = ); value = Console.ReadLine(); } maHS = value;//khi nao chieu dai chuoi nhap vao la 7 thi moi gan chotrường maHS } } như sau:Lập trình C# | Bàn về kích thước và vị trí của FormLớp Form cung cấp những thuộc tính Location (vị trí) và Size (kích thước) màmỗi ô control đều có, nhưng với một “méo mó” một chút. Thuộc tính Locationcho biết khoảng cách ở góc top left của cửa sổ so với góc top left của màn hình(hoặc desktop area) trở đi. Ngoài ra, Location sẽ bị phớt lờ trừ khi thuộc tínhStartPosition được cho về Manual. Các trị của thuộc tính StartPosition sẽ lấy từenum FormStartPosition, như dưới đây:Các trị Mô tảCenterParent Nếu form được hiển thị theo kiểu modal, thì nó sẽ được canh giữatương đối với biểu mẫu hiển thị nó. Nếu biểu mẫu này không có cha-mẹ, thì đặtđể này giống như WindowsDefaultLocationCenterScreen form được căn giữa màn hình. Ví dụ: StartPosition = 2FormStartPosition.CenterScreenManual form sẽ được canh theo vị trí được khai báo bởi thuộc tính Location,tương đối so với top left của desktop areaWindowsDefaultLocation form được hiển thị theo vị trí mặc nhiên của Windows.Nói cách khác, sẽ không biết chính xác biểu mẫu sẽ được canh về đâuWindowsDefaultBound form được hiển thị theo vị trí mặc nhiên của Windows vớimột kích thước mặc nhiên (thuộc tính Size bị bỏ qua). Thiết đặt này ít khi dùngtới vì thông thường người ta muốn điều khiển chính xác kích thước của biểumẫuThỉnh thoảng, bạn cần cẩn thận 1 chút khi chọn vị trí và kích thước đối form củabạn. Thí dụ, bạn có thể vô tình tạo ra 1 form quá lớn để có thể thích nghi với 1màn hình có độ phân giải thấp. Nếu bạn làm việc với 1 ứng dụng chỉ độc nhất 1form, giải pháp tốt nhất là tạo 1 form có thể thay đổi kích thước. Nếu bạn dùng 1ứng dụng với nhiều cửa sổ bay lung tung thì câu trả lời là không đơn giản chútnào.Tất nhiên, bạn sẽ nghĩ mình có thể giới hạn vị trị cửa sổ vào vị trí mà những mànhình có độ phân giải nhỏ có thể hỗ trợ, nhưng làm vậy thì thiệt thòi cho nhữngngười sử dụng đang sở hữu màn hình có độ phân giải cao (do nhu cầu về thiếtkế đồ họa,đọc biểu mẫu,…). Và câu hỏi mà tôi đặt ra cho bạn là phải tìm vị tríthích hợp nhất của form đối với màn hình của người sử dụng. Muốn giải quyết,bạn cần tìm lại những thông tin cơ bản đối với mặt bằng màn hình có sẵn sửdụng đến lớp ScreenCode:private void Form_Load(sender,EventArgs e) //event Load của Form{Screen scr = Screen.PrimaryScreen; //đi lấy màn hình chínhthis.Left = (scr.WorkingArea.Width – this.Width)/2; 3this.Top = (scr.WordkingArea.Height – this.Height)/2;}Ví dụ trên sử dụng thuộc tính WorkingArea của lớp Screen. Thuộc tính này trảvề vùng làm việc của màn hình, trừ đi vùng chiếm dụng ...
Tìm kiếm theo từ khóa liên quan:
lập trình C++ thủ thuật lập trình mẹo lập trình phương thức lập trình lập trình căn bảnTài liệu liên quan:
-
114 trang 243 2 0
-
80 trang 222 0 0
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 217 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 210 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 188 0 0 -
Hướng dẫn lập trình với Android part 4
5 trang 156 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 134 0 0 -
142 trang 130 0 0
-
124 trang 114 3 0
-
150 trang 104 0 0