Đúng nếu code chỉ có mình bạn dùng.
Thuộc tính trong abstract class c#
Việc lớp đó không khởi tạo đối tượng với việc dùng hay không dùng không liên quan gì đến nhau. @_@!
Trong trường hợp bạn quản lý các đối tượng là kiểu A chứ không phải kiểu B, C hay D thì đó là một việc cần thiết
List<A> listA = new List<A>();
listA.Add(new B());
listA.Add(new B());
listA.Add(new C());
listA.Add(new C());
listA.Add(new D());
listA.Add(new C());
foreach(A a in listA) {
a.MyProperty; // Không quan tâm là B, C hay D.
}
Nhưng không có quy tắc phải dùng protected trong abstract class. Còn dùng khi nào đó là ý đồ của mình.
Like. Mình cũng đồng ý vậy.
Còn nêu đã để get set ra thì đa phần là public.
Người ta nhờ giải code thì cậu không cho giải đến khi không nhờ thì cậu code xanh tử lửa. Trẻ trâu quá dị ta
Hi Đăng Trần.
Đơn giản vì cái gì quan tâm thì vào làm thôi. Hơn nữa nó không vi phạm quy định diễn đàn.
Vi phạm thì có sao, miễm không đi xa quá mà cả nhà vẫn vui thì vẫn vi phạm thôi. Ngày làm muốn chết lâu lâu cũng cho phá tý đầu óc nó mới minh mẫn được. Làm cái diễn đàn xôn xao lên tý thôi trẻ trâu ơi.
Nó biến diễn đàn thành nơi hỏi bài tập -> các bài đang chủ yếu là các bài hỏi bài tập -> các thành viên có kinh nghiệm kiến thức ít quay lại. các thành viên cơ hội tăng lên -> diễn thành nơi thể hiện của mấy ông hơi biết tí chút, nơi đê những người không học hành gì hỏi bài.
P/S trước có một bác người nước ngoài có khá nhiều bài hay. Sau này không quay lại nữa cũng vì một phần do trên. @_@!
Cái này mình tham gia thời gian gần nhưng cũng hiểu. Nhưng đây là tình hình chung các diễn đàn mở. Tại các ae trên diễn đàn chưa đông hoặc hoạt động không thường xuyên nên các chủ đề kiểu webtretho thống lĩnh. Anh em có kn ra sức thuyết phục, định hướng lại từ từ thôi. Khi đông đảo nhận thức được mọi chuyện sẽ ổn. Tôi thì nông dân và chung thủy lắm, đáp đâu đậu đó canh tác luôn. Cái gì cũng phải từ từ, khi nào mất mác quá lớn sẽ có thay đổi thôi. Chết bà đi xa quá rồi.
Không phải là @Phong_Ky_Vo không thích code, mà là anh ấy không thích giải bài tập hộ
Còn ở đây là code mẫu để giải thích cho người hỏi, mình cũng thường làm vậy mà, không vi phạm quy định diễn đàn
Mà lạ là trong 3 tuần nay, số lượng các câu hỏi nhờ giải bài tập, thậm chí hỏi kiểu bố đời không chủ ngữ, rồi lười đánh lại đề đến mức screenshot hoặc chụp ảnh lại post lên, tăng đột biến. Chuyện này rất không ổn.
thường khi thiết kế thì các thuộc tính của 1 lớp sẽ private hoặc protected , còn việc cho nó public cũng được tùy thuộc vào ý đồ của người viết , mình nhớ có đọc ở đâu đó tranh cãi về việc dùng geter/seter và không dùng ở java và c# ai cũng có cái đúng riêng hết…@@
Ý thầy là các thuộc tính đang để ở chế độ public thì viết set với get là thừa đấy.
Thầy bạn nói không sai đâu. Bạn nên đọc kỹ lại quyền riêng tư của Class. Chỉ dùng public khi bạn muốn cho các class khác trong gói or khác gói đều được xem data lưu trong thuộc tính của abstract class, hoặc là thuộc tính của nó là Hằng cho ai xem cũng ko thay đổi được. Dùng public vô tội vạ là 1 thói quen cực kỳ xấu. Nếu bạn chỉ code cho mình dùng cá nhân thì bị ntn bạn chịu, còn nếu làm việc trong công ty, viết nnt ăn chửi ngay vì cái tội không bảo mật dữ liệu
Tuy là đào mộ nhưng mình vẫn phải vào nói nhé:
ACCESS MODIFIER không giúp ích gì cho BẢO MẬT DỮ LIỆU cả, đừng có mà nói linh tinh, nó chỉ giúp cho lập trình viên không vô tình đụng vào thứ không phải việc của mình mà thôi!
Nếu mình là hacker, mình sẽ bỏ thời gian nghiên cứu xem công ty đó dùng software A nọ, version bao nhiêu, kết cấu thế nào (vì công ty lớn họ rất ngại nâng cấp software liên tục), sau đó mình sẽ lừa nhét 1 con malware vào cty đó và chạy nó, rồi nó sẽ inject chính nó vào software A (dotnet app), rồi mình sẽ dùng Reflection (hoặc scan trực tiếp dữ liệu luôn) để đọc dữ liệu nhé.
Ông thầy đó có thể có lý của ông ta, nhưng ông ta không chịu giúp người khác hiểu (không minh bạch) thì ông vẫn cứ vô dụng mà thôi.
Access modifier đúng là không có tác dụng gì cho bảo mật dữ liệu cả, chỉ là giúp cho lập trình viên biết mình cần phải sử dụng hàm nào, được phép thay đổi thuộc tính nào… Với cả nó giúp ích rất nhiều trong code readability.
Trừ khi getter, setter cần phải làm cái gì đó phức tạp, không thì cứ public, chả vấn đề gì cả. Mình cũng làm việc trong cty, ai mà bảo mình viết abstract class không được có public field để bảo mật dữ liệu chứng tỏ không phải dân code
Chứ reflection thời nay thì cái gì chả access được. Các ngôn ngữ biên dịch như C#, Java bây giờ còn thông dịch được nữa là.