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 ?

Henry viết 11:37 ngày 01/10/2018

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

Văn Dương viết 11:31 ngày 01/10/2018

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

Hoàng Ngô viết 11:33 ngày 01/10/2018

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

Văn Dương viết 11:31 ngày 01/10/2018

Đừng có tự tin thái quá

Hoàng Ngô viết 11:41 ngày 01/10/2018

thật sự là vậy mà

Henry viết 11:42 ngày 01/10/2018

vật nếu như mình đặt tên hàm là set người ta vẫn mò ra mà ~~

Văn Dương viết 11:41 ngày 01/10/2018

Thử thêm private hay protected trước set xem có mò ra không ??

Hoàng Ngô viết 11:43 ngày 01/10/2018

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

Văn Dương viết 11:29 ngày 01/10/2018

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ì ?

Trần Hoàn viết 11:37 ngày 01/10/2018

Đô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 :))

Trần Hoàn viết 11:44 ngày 01/10/2018

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ộ.

Hoàng Ngô viết 11:42 ngày 01/10/2018

Ủ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à ?

Trần Hoàn viết 11:33 ngày 01/10/2018

Bạn nghĩ người ta cần đến mã nguồn để crack à

rogp10 viết 11:37 ngày 01/10/2018

.NET còn dễ xem code nữa (tương đối) nếu bạn để nguyên.

Bài liên quan
0