Quy ước đặt tên của các biến trong ngôn ngữ lập trình C # [đã đóng]


10

Tôi đang xem video trên C # về Biến. Tác giả tuyên bố một biến trong một phương thức và ông đặt tên như thế này: string MyName = "James";

Câu hỏi của tôi là: quy ước nào được khuyến nghị bởi .Net Framework. Đây có phải là vỏ Pascal như trong ví dụ trên hay là vỏ lạc đà?


Vấn đề với câu hỏi này, mà bạn không biết vì vậy đó không phải là lỗi của bạn, trên thực tế không có quy ước chính tắc nào cho C #. Có những quy ước chung; không may là nhiều hơn một, nhưng sẽ rất khó để bạn có được câu trả lời ở đây, đó là bất cứ điều gì ngoài ý kiến ​​thuần túy. Xin lỗi, bỏ phiếu để đóng; Đề nghị của tôi: Dành thời gian đọc mã trong kho lưu trữ github và codeplex phổ biến để xem những quy ước nào họ sử dụng khi những người viết hầu hết những người nổi tiếng là những người có kinh nghiệm trong ngành và theo kinh điển như những gì bạn sẽ tìm thấy.
Jimmy Hoffa

5
Các quy ước đặt tên từ MSDN - msdn.microsoft.com/en-us/l
Library / xzf533w0 (v = vs.71) .aspx

1
@Yusubov Chúng mô tả việc đặt tên các phần công khai của thư viện, không phải các biến cục bộ.
Svick

Câu trả lời:


26

Tôi không nghĩ có gì đó giống như một hội nghị 'chính thức'. Theo tôi biết, những điều sau đây được coi là thông lệ tốt của nhiều nhà phát triển C # có kinh nghiệm:

PascalCase for public member variables (string MyName = "James")

camelCase for local variables (string myName = "James")

_leadingUnderscore for private member variables (string _myName = "James")

Với phương pháp này, người ta có thể phân biệt giữa các biến cục bộ cũng như các thành viên công cộng và tư nhân bằng trường hợp chữ cái đầu tiên của họ.

Như với bất kỳ quy ước mã hóa nào, điều này cũng tùy thuộc vào sở thích cá nhân. Do đó, không có câu trả lời chắc chắn. Một mục tiêu chung nên là giữ cho mã dễ đọc và dễ hiểu nhất có thể.


3
+1 Điều này gần với phong cách tôi đã thấy. Tôi tin rằng nó thường được lấy từ phong cách được sử dụng trong các ví dụ của MSDN. Thông thường tôi thấy các tài sản nhận được PascalCase, người dân địa phương nhận được camelCase, và các thành viên tư nhân nhận được một _leadingUnderscore.
KChaloux

Bạn có nghĩa là Trường hoặc Thuộc tính khi bạn nói các biến thành viên?
Kaser

Các nhà phát triển Delphi có xu hướng đặt tên cho các tham số hàm / phương thức bằng cách thêm tiền tố vào chúng bằng 'a' : (aParameter: string). Tôi nhận ra các tham số về cơ bản là các biến cục bộ, đặc biệt là khi được truyền bởi giá trị, nhưng thường rất hữu ích khi "thấy" rằng một var thực sự được truyền vào dưới dạng tham số. Có bất kỳ quy ước như vậy trong C #?
Marjan Venema

Và một số khác: các lĩnh vực thành viên. Delphian tiền tố chúng với một 'F'. Tôi đã thấy mã C # khai báo chúng bằng dấu gạch dưới : private string _SomeString. Bạn có thể nói đó là một quy ước? (Chỉ cần nhúng ngón chân vào C # và tự hỏi về công cụ này).
Marjan Venema

1
Điều này là không chính xác. Có các quy ước đặt tên được công bố cho các thành viên công cộng (và các lớp học công cộng, vv).
Svick

7

Các quy ước đặt tên khung .Net ( v4.5 , v1.1 ) không rõ ràng về điều này. Họ không chỉ định một tiêu chuẩn để đặt tên biến cục bộ. Bạn sẽ phải quyết định về quy ước của riêng bạn để đặt tên này.

Cá nhân tôi sử dụng camelCase và phân biệt các biến thành viên từ các tên tham số thiskhi cần thiết. Nhưng dấu gạch dưới hàng đầu (tức là _memberVariable) cũng có giá trị.


1
Đây chính xác là lý do của việc sử dụng các quy ước đặt tên - sử dụng thisđể phân biệt các biến cục bộ với các trường / thuộc tính. 5 chữ cái thêm mỗi lần là quá nhiều imho.
Sinatr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.