Quay lại thời xưa, chúng tôi đã làm ký hiệu Hungary. Bây giờ được coi là passé và đối với hầu hết các phần tôi không sử dụng nữa, nhưng tôi vẫn thấy sử dụng m_
tiền tố để chỉ ra các trường thành viên.
Đối với tôi, nếu tôi đang đọc qua mã của người khác và tôi thấy điều này:
count = 3;
Tôi giả sử rằng đó count
là một biến cục bộ của hàm đó và tôi đang làm một cái gì đó sẽ được sử dụng ở nơi khác trong hàm; nếu tôi thấy điều này:
m_count = 3;
Tôi ngay lập tức nhận ra rằng tôi đang cập nhật trạng thái của đối tượng.
Các nguyên tắc phong cách của Microsoft nói rằng đó là cách làm sai. Tôi phải đặt tên cho các trường không công khai của mình chính xác như các biến tạm thời được xác định trong hàm. Không m_
, thậm chí không phải là một dấu gạch dưới đơn giản.
Vâng, chúng ta có thể định nghĩa phong cách mã hóa của riêng mình, nhưng sau đó tôi phải vật lộn với nhiều công cụ phân tích mã tĩnh khác nhau, để thuyết phục họ rằng cách làm việc của chúng tôi là ổn.
Tôi rất vui khi thay đổi phong cách của Microsoft, nhưng tôi muốn biết tại sao mọi thứ lại như vậy.
Tại sao bây giờ nó được coi là xấu để có thể biết liệu một biến là hàm cục bộ hay thành viên?
PS Điều này rất giống với các thực tiễn tốt nhất hiện tại được coi là liên quan đến từ khóa của điều này trên mạng và các phương thức trong c # là gì? , nhưng tôi hỏi về m_
khôngthis.
PPS Cũng xem Tại sao Microsoft tạo tham số, biến cục bộ và trường riêng có cùng quy ước đặt tên?
count
không xuất hiện từ đâu vì nó không được khai báo trong phương thức. Thành thật mà nói, đối số "ngoài IDE" thực sự yếu. Đặc biệt là vì thậm chí có các công cụ đánh giá mã hoạt động trong IDE.
this
từ khóa? Bạn không thể tham khảo các thành viên sử dụngthis
, chẳng hạn nhưthis.count
?