01/10/2018, 09:29
Tại sao lại cần thiết lập phạm vi truy cập trong c#?
Tại sao lại phải thiết lập phạm vi cho biến, method bằng các từ khóa như : public, private, protected,… Từ đó còn phát sinh thêm cặp từ khóa set và get, tại sao lại ko để tất cả là public để có thể dễ dàng truy xuất ? Ai có thể giải thích giùm mình tác dụng của phạm vi được ko ?
Bài liên quan
thật ra e cũng có nghe nói là như vậy sẽ bảo mật khi mà ta phải dùng hàm get hoặc set mới có thể thao tác với các private, protected được không cho set trực tiếp ở ngoài như set public. Nhưng thật sự e không hiểu như vậy để làm gì cả. Hóng tl với
Thế sao tiền hay vợ bác bác cữ giữ khư khư mà không public cho cả bản cùng xài
Đến lúc mất tiền hay có bầu ko biết thằng nào là thủ phạm
Vì e biết chắc là chỉ có e xài thôi bác, mà con vợ cũng ở nhà (trong chương trình) thôi chứ có đi đâu đâu :v
Đừng có tự tin thái quá
thật sự là vậy mà
vật nếu như mình đặt tên hàm là set người ta vẫn mò ra mà ~~
Thử thêm private hay protected trước set xem có mò ra không ??
Giả sử có nhiều người cũng làm 1 dự án thì đó là những thành viên trong gia định của mình, chẳng lẽ mình còn sợ họ ăn cắp đồ sao :v
Khi dự án hàng nghìn dòng code trong một thời gian dài thì chưa chắc được gì đâu.
Mà C# là OOP. OOP thì có tính bao đóng. Mà public như vậy thì vi phạm tính bao đóng.
Đã một mình nó dùng thì còn public làm gì ?
Đôi khi người ta thiết lập phạm vi truy cập chỉ để cho dễ code. Giả sử bạn có một cái class với 20 thuộc tính, trong đó có 4 cái private. Như vậy khi ta ấn dấu ‘.’ thì chỉ có 4 thuộc tính gợi ý hiện ra cho bạn chỉnh, còn nếu cả 20 cái cùng hiện ra sẽ rất rồi mắt :)) Nếu bạn làm chung một dự án, đôi khi chỉ cần biết các thông tin chính, việc quá nhiều biến public sẽ làm rối người khác.
Thứ 2 là vấn đề debug. Bạn thiết lập các quyền truy xuất càng chặt chẽ thì phần mềm càng khó bị crack :))
Ngoài ra, việc sử dụng getter / setter còn giúp mình điều khiển được điều kiện đầu vào cũng như có thể thay đổi được nhiều giá trị trong cùng một phương thức. Hay đơn giản là đồng thời với get / set, người ta còn cần làm thêm gì đó nên đưa luôn vào cho đồng bộ.
Ủa mà làm sao người ta có thể thấy code của mình đc mà crack bác , mình đã ẩn code rồi tạo ra 1 cái phần mềm rồi mà ?
Bạn nghĩ người ta cần đến mã nguồn để crack à
.NET còn dễ xem code nữa (tương đối) nếu bạn để nguyên.