2011-12-30 14 views
13

Nếu tôi có một phần các lớp trong C#, tên tệp phải là gì?Quy ước đặt tên cho tên tệp lớp học một phần?

Lớp được gọi là partial class Logic và sẽ tồn tại trong hai hoặc có thể ba tệp riêng biệt.

+6

http://stackoverflow.com/questions/1478610/naming-conventions-for-partial-class-files –

+0

Hình như đó là tất cả cho không có gì:/Unity3D không thể xử lý các lớp một phần. nó nghĩ rằng họ là hai lớp riêng biệt. –

+0

Lưu ý rằng kể từ phiên bản Unity 4.1.5, một phần các lớp xuất hiện hoạt động tốt. – yoyo

Trả lời

22

Đối với một lớp học có tên là Logic, tôi có thể đi theo số Logic.something.cs (trong đó "thứ gì đó" khác nhau cho mỗi tệp). Điều này sẽ có cùng phong cách với các lớp từng phần mà Visual Studio tạo ra (ví dụ: các tệp .designer.cs cho các biểu mẫu)

+2

Thật vậy, điều này sẽ phân biệt _why_ đó là một phần một phần, và "tại sao" là một phần quan trọng của quy ước đặt tên. Ví dụ cổ điển với các lớp một phần là một phần được tạo ra và phần kia là thủ công. Vì vậy, 'Logic.generated.cs' và' Logic.cs' sẽ khá trực quan. – David

+0

Tôi thích ý tưởng này, nó làm cho nó dễ dàng nhận dạng từ các nhà thiết kế! – Jonathan

0

Tôi tin rằng bạn có thể chọn tên tệp như bạn muốn, miễn là các lớp một phần là được đặt trong cùng một không gian tên!

0

Dù bạn muốn nhưng:

  • Không sử dụng các lớp học phần. Nếu lớp học của bạn là lớn, tốt hơn để chia nó thành các lớp riêng biệt bằng cách nào đó.
  • Nếu bạn nhấn mạnh vào các lớp học phần, chia cho họ một cách logic, vì vậy bạn có thể có Logic_Boolean.cs vv
+0

Là một nhận xét về lập luận đầu tiên của bạn: Tôi không giỏi về các lớp học, vì vậy hãy giữ cho nó có tổ chức tôi muốn chia nhỏ nó thành nhiều tệp :) –

+0

@SimonVerbeke đủ công bằng. Nhưng một cái gì đó để ghi nhớ. – Ray

+0

một lý do khác là tôi đang làm việc với Unity3D và các tập lệnh của nó yêu cầu bất kỳ logic nào bạn muốn thực thi được đặt trong một số phương thức được xác định trước. Tôi muốn tách riêng những thứ đó: 'Update()' trong một tệp, 'OnGUI() 'trong một tệp khác, ... Nó cũng là một dự án khá nhỏ với nhiều mã không trả về bất cứ nơi nào khác. –

2

tôi sẽ chỉ sử dụng các lớp học phần nếu tôi tạo mã (CodeSmith, MyGeneration, Template Files (TT)). Microsoft đã thực hiện một công việc tốt để làm điều này với các proxy và các bộ dữ liệu được tạo ra. Khi mã sẽ được tạo lại trong tương lai, nó cho phép bạn tách riêng logic mà bạn muốn đưa vào nhưng không muốn ghi đè.

Chuẩn Dựa Khi Microsoft .NET Tiêu chuẩn Thư viện http://10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices

Pascal Case, không có dấu gạch dưới hoặc dẫn "C" hoặc "cls".

Các lớp học chỉ có thể bắt đầu bằng chữ "I" nếu chữ cái sau I không được viết hoa, nếu không nó sẽ giống như Giao diện.

Các lớp học không được có cùng tên với không gian tên mà chúng cư trú. Bất kỳ từ viết tắt nào của ba chữ cái trở lên phải là chữ pascal, chứ không phải tất cả các chữ cái. Cố gắng tránh viết tắt và cố gắng luôn sử dụng danh từ. Lý do: Quy ước này phù hợp với .NET Framework và dễ đọc.

Ví dụ Bao gồm

  • Widget
  • InstanceManager
  • XmlDocument
  • MainForm
  • DocumentForm
  • HeaderControl
  • CustomerListDataSet

Dưới đây là một liên kết MS trên quy ước đặt tên http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx