2013-09-04 6 views
8

Phụ lục A của những giao dịch đặc tả ngôn ngữ C# với ý kiến ​​tài liệu và nó khẳng định rằng có hai hình thức:bình luận Tài liệu trong C#: lý do kỹ thuật để thích là gì /// hoặc/**

single-line -doc-bình luận:
/// đầu vào-charactersopt
phân-doc-bình luận:
/** phân-comment-textopt */

là có một sở thích? Tôi nhận thấy một xu hướng thích định dạng single-line-doc-comment nhưng tôi không biết nếu có những lý do kỹ thuật hay thiết thực ngoài việc mọi người chọn từ quan điểm thẩm mỹ.

Tôi cũng đã đọc trong cuốn sách "C# cho nhà phát triển Java" của Jones và Freeman sau: ý kiến ​​tài liệu

Mã đều bắt đầu bằng ba dấu gạch chéo, như ở đây:
/// A single line documentation comment.
Đặc tả C# cũng khuyên bạn nên sử dụng mã thông báo/** quen thuộc để xác định các nhận xét tài liệu nhiều dòng. Tuy nhiên phiên bản 7,00 của trình biên dịch C# không hỗ trợ cú pháp này.

Tôi không thể xác minh rằng các phiên bản mới nhất của csc không hoạt động với cú pháp đa dòng. Theo như tôi có thể nói cú pháp này hoạt động tốt.

**edit** Một số người đã yêu cầu hiển thị mẫu. Dưới đây là các mẫu:

/// <summary> 
/// Performs a Method1 calculation on two strings 
/// </summary> 
/// <param name="arg1">The first string</param> 
/// <param name="arg2">The second string</param> 
/// <returns>The number 3</returns> 
public static int Method1(String arg1, String arg2) 
{ 
    return 3; 
} 
/** 
* <summary> 
* Performs a Method2 calculation on two strings 
* </summary> 
* <param name="arg1">The first string</param> 
* <param name="arg2">The second string</param> 
* <returns>The number 3</returns> 
*/ 
public static int Method2(String arg1, String arg2) 
{ 
    return 3; 
} 

Vậy câu hỏi, trình bày lại, là mẫu nào thích hợp hơn, là có kỹ thuật hoặc lý do khác để thích bình luận tài liệu phong cách của Method1 trong mẫu, trên, hoặc Method2 trong mẫu, ở trên?

+0

Ba dấu gạch chéo được sử dụng để nhận xét một phương thức hoặc lớp và chú thích đó được sử dụng bởi intellisense để mô tả phương pháp. Tôi không nghĩ rằng bạn có thể làm tương tự với/** – paqogomez

+0

phiên bản 7 là Visual Studio.NET 2002 hoặc 2003 (.net 1 và 1.1.x). – ps2goat

+0

không có C# 7 - chúng tôi thậm chí không có bản phát hành C# 6 nào .... –

Trả lời

5

Thông tin tôi đã có thể để thu thập từ đăng câu hỏi này khẳng định rằng mặc dù csc /doc: sẽ chấp nhận một trong hai định dạng, định dạng dòng đơn có một số ưu điểm so với các định dạng đa dòng:

1) Trong Visual Studio , IntelliSense sẽ cung cấp cho bạn thông tin làm rõ các đối số bạn đang truyền trong một biểu thức gọi phương thức khi bạn đang gõ, bất kể bạn ban đầu tài liệu phương pháp của bạn với /// hay/**. Tuy nhiên, Visual Studio sẽ cung cấp cho bạn hỗ trợ bằng cách viết các chú thích tài liệu bằng cách sử dụng các tiền tố chỉ khi bạn sử dụng định dạng ///. Ví dụ, nếu bạn đặt con trỏ trên một phương pháp kê khai trong Visual Studio và nhấn / ba lần, bạn sẽ thấy một mẫu bối cảnh cụ thể tạo ra cho bạn như thế này:

/// <summary> 
    /// 
    /// </summary> 
    /// <param name="arg1"></param> 
    /// <param name="arg2"></param> 
    /// <returns></returns> 

này không hoạt động nếu bạn định vị con trỏ trên phương thức và nhấn /, *, *.

2) Định dạng một dòng cho phép bố cục rõ ràng hơn các chú thích tài liệu vì mỗi dòng bắt đầu với cùng một thụt đầu dòng, tất cả các dòng của khối có thể được sử dụng và mỗi dòng thông tin nhận xét được căn trái.

3) Nói chung, lợi thế khi sử dụng kiểu đường đơn trong các nhận xét một dòng là miễn phí để chứa */token trong khi các nhận xét nhiều dòng không phải là; và thường dễ dàng hơn nếu bạn đang sao chép/dán các phần nhận xét từ một nơi này sang nơi khác trong trình chỉnh sửa.

4) Cũng có bằng chứng cho thấy trình biên dịch C# ủng hộ định dạng đường đơn, nếu bạn xem xét cách csc.exe xử lý các khối tài liệu liền kề. Hãy xem xét một bản tuyên bố như thế này:

/** 
    * <thiscutetag>some info</thiscutetag> 
    */ 
    /** 
    * <theothercutetag>more info</theothercutetag> 
    */ 
    public static void Main() { } 

Khi đi qua csc/doc: các tài liệu sẽ được tạo ra như mặc dù nội dung của cả hai khối biến đổi phương thức Main. Hành vi này là không trực quan, nhưng trở nên trực quan nếu bạn chuyển đổi hai tiếp giáp khối multiline bình luận vào hai bộ tiếp giáp các ý kiến ​​đơn dòng, như sau:

/// <thiscutetag>some info</thiscutetag> 
    /// <theothercutetag>more info</theothercutetag> 
    public static void Main() { } 
0

Tôi chưa bao giờ gặp phải bất kỳ hạn chế khi sử dụng dấu sao trên dấu gạch chéo kép (hoặc gấp ba). Vì lý do gì đó, cộng đồng C# đã quyết định sử dụng dấu gạch chéo kép cho nhận xét.

Điều thú vị là xuất hiện các chú thích dấu gạch chéo kép xuất hiện từ C++ và Java. Dưới đây tôi đã bao gồm một danh sách các ngôn ngữ có nghĩa là những gì biểu thị nhận xét bằng ngôn ngữ:

  1. ALGOL 60 -; (dấu chấm phẩy)
  2. Ngôn ngữ lắp ráp -; (Dấu chấm phẩy)
  3. Ada, mySQL - - (hai dấu gạch ngang)
  4. C++/Java - // (hai dấu gạch chéo)
  5. FORTRAN 90 -! (Chấm than mark)
  6. Perl, TCL, UNIX Shell, mySQL - # (băm dấu)
  7. Visual Basic.NET - '(apostrophe)

Sau đây là những ví dụ về các công cụ bằng cách sử dụng dấu gạch chéo kép như dòng đơn và dòng kép.

Visual Studio Đánh dấu một khối mã và sử dụng tổ hợp phím Ctrl + K + C và mã được nhận xét bằng cách sử dụng các dấu gạch chéo kép.

Ghost Doc Ghost Doc là công cụ tự động tạo tài liệu cho phương pháp. Nó sử dụng ký hiệu gạch chéo ba. Đó là sự hiểu biết của tôi rằng dấu gạch chéo ba với việc sử dụng các phần tử XML trong các ý kiến ​​cho phép công cụ như vậy NDocSandcastle tạo ra định dạng Trợ giúp HTML kiểu MSDN.

Atomineer Pro Atomineer Pro là một công cụ khác sẽ tạo tài liệu cấp phương thức từ tên phương thức và tên thông số. Nó cũng sử dụng ký hiệu gạch chéo ba theo mặc định.

Tiêu chuẩn mã hóa MSDN C# C# coding standards nói để sử dụng dấu gạch chéo kép và không sử dụng nhận xét khối.

Idesign C# Coding tiêu chuẩn Trong khi iDesign không phải là Microsoft, tôi đã luôn luôn cảm thấy họ là một chút của một cơ quan trong cộng đồng C#. Họ đã xuất bản một tài liệu C# Coding Standard tiêu chuẩn ký hiệu kép là phương thức ưa thích.

+0

Điều này giải quyết các nhận xét dưới dạng tính năng ngôn ngữ, chứ không phải các chú thích được định dạng đặc biệt được tìm kiếm và trích xuất bằng các công cụ tài liệu. Bên cạnh đó, các phiên bản gần đây của C cũng hỗ trợ kiểu C++ - '//', và C++ cũng hỗ trợ kiểu C/'* * /'. –

+0

@BenVoigt Trong đoạn thứ hai, câu hỏi sẽ hỏi "* Có sở thích nào không? *" Tôi đã đưa ra 5 ví dụ về các công cụ và các tiêu chuẩn mã hóa đã chọn các chú thích dấu gạch chéo trên các dấu hoa thị. Trong câu cuối, câu hỏi đặt ra là "* có lý do kỹ thuật hay lý do nào khác để thích kiểu nhận xét tài liệu của Method1 trong mẫu, ở trên, hoặc Method2 trong mẫu, ở trên? *" Đây là một câu trả lời cho câu hỏi đầu tiên của anh ta, nhưng một lần nữa 5 ví dụ chứng minh rằng dấu gạch chéo kép được ưa thích. –

+1

Bạn vẫn tập trung vào "dấu gạch chéo kép". Một dấu gạch chéo kép thậm chí không bắt đầu một bình luận tài liệu. Tất cả các nhận xét khác mà bạn so sánh, không phải là nhận xét về tài liệu. Ctrl + K + C không tạo tài liệu. –