Tôi biết có một cuộc tranh luận/ý kiến về việc sử dụng this
từ khóa hoặc nhấn liên quan đến lĩnh vực tư nhân/tài sản (và tôi sẽ đề cập đến, tôi bị mắc kẹt trên .NET 2.0)ước đặt tên trong C# - Biến toàn cầu
Cá nhân, tôi thích this
, nhưng có những lúc bạn không thể sử dụng nó, ví dụ khi bạn cần tham chiếu biến toàn cầu từ bên trong một phương thức tĩnh. Vâng, sau đó chúng tôi buộc phải sử dụng gạch dưới (giả sử chúng tôi chỉ có 2 lựa chọn, this
hoặc gạch dưới). Điều này có nghĩa là nếu lớp của tôi sử dụng bất kỳ phương pháp tĩnh nào tôi không thể sử dụng this
trong toàn bộ tài liệu.
Bây giờ, tôi đã đọc naming guidelines và sử dụng StyleCop, cả hai thay vì tôi không sử dụng dấu gạch dưới, nhưng Resharper của tôi khá nhiều nhấn mạnh vào việc sử dụng _.
Tôi không cảm thấy đúng khi có một lớp sử dụng _ và lớp tiếp theo sử dụng this
chỉ đơn giản là để thích ứng khi các lớp kết hợp các phương thức tĩnh và tĩnh! Lời khuyên ở đây trên SO là để giữ cho một triển khai/phong cách nhưng tôi không biết nếu điều đó có nghĩa là tôi nên bỏ qua Microsoft (và tôi biết MS không phải luôn tuân thủ các quy tắc của riêng họ)!
Nó đã được đề xuất để tiền tố với một cái gì đó khác, tương tự như Hungary nhưng tiền tố với globVariableName nơi glob chỉ ra toàn cầu. Tôi ghét ý tưởng này, nó quá bespoke và sẽ không được rõ ràng cho bất kỳ nhà phát triển khác bên ngoài nhóm của tôi.
Vì vậy, câu hỏi của tôi là, cách tốt nhất để xác định biến toàn cục là gì? Vì chúng là hướng dẫn đặt tên, có thể tôi chỉ có thể bỏ qua (ít nhất _ có thể được sử dụng nhất quán nhưng cảm thấy sai khi bỏ qua lời khuyên từ những người tạo ngôn ngữ).
Trong C++ 'm_' là 'ước', ước trong losest ý nghĩa của thuật ngữ ... – MoonKnight
Với 'biến toàn cầu', tôi đoán bạn có nghĩa là biến được bảo vệ hoặc riêng tư là 'tĩnh' hoặc' const'. Nếu đó là trường hợp, họ đi với PascalCase, nếu họ là tư nhân/bảo vệ họ không nên. Tôi không thấy bất kỳ xung đột nào ở đó. – istepaniuk
Tôi không thấy làm thế nào điều này không thể biến thành một cuộc thảo luận mở rộng. Tôi khuyên bạn nên đặt câu hỏi này trên http://programmers.stackexchange.com/ vì bạn không có câu hỏi ** cụ thể ** về mã của riêng bạn. Tôi phải đặt câu hỏi thiết kế lớp học của bạn nếu bạn phải có biến để tham chiếu một đối tượng trong một phương thức tĩnh. Dường như là phương thức tĩnh nên một tên biến mô tả bất kỳ đối tượng hợp lệ nào. ** Nói cách khác, có lẽ sử dụng biến toàn cầu trong trường hợp như thế này là toàn bộ vấn đề. ** –