Như đã nói đây là các từ khóa dùng để gán quyền truy xuất cho các thuộc tính  và phương thức, lớp. ..
Access Modifiers << Đọc thêm >>

1. Public
- Khi gán từ khóa này cho phương thức,trường, thuộc tính, các biến, lớp thì chúng sẽ được truy xuất và sử dụng công khai mà không có ràng buộc nào. Tuy nhiên bạn cần lưu ý nếu lớp không được khai báo public thì tất cả thuộc tính hay phương thức trong nó đều không thể truy xuất từ lớp khác.
- Khi nào cần dùng Public:
  + Bạn muốn công khai một lớp cho các lớp khác truy xuất
  + Sử dụng cho các phương thức. Nếu đã cho lớp khác truy xuất thì các phương thức cần phải public  thì lớp đó mới sử dụng được
  + Sử dụng cho get,set. Đây là hai thuộc tính quản lý đầu vào ra của các trường dữ liệu (field). Nếu không có mục đích khác thì thông thường ta sử dụng public để lấy dữ liệu và nhập dữ liệu thông qua get/set
..............
  + Và tất nhiên còn dùng trong việc khai báo biến, thông thường các biến cục bộ chỉ sử dụng private để bảo vệ thông tin.


2. Private
- Chỉ gán từ khóa này cho trường (field), phương thức, thuộc tính get/set, các biến.... Nhưng không thể gán cho class. Lưu ý class được mặc định ẩn là Internal, chỉ khi bạn gán public thì class đó mới được công khai

3. Protected
- Từ khóa này bạn cần chú ý, khi tạo một lớp cha (cơ sở) các trường (field) cần phải gán protected nếu không các lớp con sẽ không kế thừa được.
- Nó bảo vệ thông tin và chỉ cho lớp con kế thừa được quyền truy xuất.

4. Internal
- Nó giới hạn các class chỉ được sử dụng trong một Assembly (*.exe,*.dll)
- Các khối khác nhau vẫn có thể truy xuất với nhau nhưng phải thông qua: Friend Assemblies.

Những từ khóa trên có nhiệm vụ tăng độ bảo toàn thông tin trong C#, giữ cho thông tin được bảo mật theo ý người sử dụng

Ví dụ:
Đây là lớp NhanVien

public abstract class NhanVien
{
protected int manv { get; set; }
protected string hoten { get; set; }
protected string diachi { get; set; }

public NhanVien(int MANV, string HOTEN, string DIACHI)
{
this.manv = MANV;
this.hoten = HOTEN;
this.diachi = DIACHI;

}

public abstract void printInfo();

}

Tiếp đến tạo một class GiangVien kế thừa từ lớp NhanVien

class GiangVien : NhanVien
{
private string khoa { get; set; }
private string chuyenmon { get; set; }

public GiangVien(int MANV, string HOTEN, string DIACHI, string KHOA, string CHUYENMON)
: base(MANV, HOTEN, DIACHI)
{
this.khoa = KHOA;
this.chuyenmon = CHUYENMON;
}

public override void printInfo()
{
Console.WriteLine("Ma Nhan Vien: {0}"
+ '\n' + "Ho Ten: {1}"
+ '\n' + "Dia Chi: {2}"
+ '\n' + "Khoa: {3}"
+ '\n' + "Chuyen Mon: {4}",
this.manv, this.hoten, this.diachi, this.khoa, this.chuyenmon);
}
}

Khởi tạo một  đối tượng là Giảng Viên 

class Program
{
static void Main(string[] args)
{
var person = new GiangVien(555, "Nguyen Van A", "Da Nang", "CNTT", "CNPM");
person.printInfo();
Console.ReadLine();
}
}

Kết quả chương trình
Bạn có thể thấy ở trên lớp cha NhanVien khai báo các field là protected thì lớp con GiangVien mới kế thừa được. Và mặc định lớp GiangVien ở trên lúc này là internal
- Một điều nữa tại lớp GiangVien khai báo là public, tuy nhiên không cần gán như vậy các lớp khác vẫn kế thừa bình thường, không ảnh hưởng gì cả.

Lưu ý:
- Khi bạn tạo một project ClassLibrary, trong project này tất cả class sẽ được build ra một DLL. Các bạn thường sử dụng để tạo ra các DLL trong mô hình 3 layer và dùng các DLL này add reference cho Project khác để sử dụng. Vậy nên việc khai báo các từ khóa   Access Modifiers  cần phải rõ ràng, nếu không lúc add DLL đó sẽ không thể sử dụng vì chưa Public chẳng hạn hoặc để Public tùy tiện một số class cần bảo mật.
 Xin nói thêm DLL là viết tắt của từ Dynamic Link Library

Add New Project
 (Một Solution quản lý nhiều Project của nhiều ngôn ngữ lập trình và công nghệ khác nhau)

- Tương tự như vậy một project bình thường (console, Windows Form, WPF . . .) sẽ build ra một EXE


Update: 14h30 23/10/2013
Cheers !

thumbnail Keywords: Public - Private - Protected - Internal

data:label.name author

premiumpng.com

Design Publisher

Download 0
No comments
Template in .PSD format

MR Laboratory License

Free for personal purpose use . More info


Buy Now This Template

No comments:

Post a Comment

Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free

Newer Post Older Post Home

Copyright © 2021 MR Laboratory All rights reserved.

Setting