Có hai loại “chú thích” (comment) sử dụng trong .NET framework: loại chú thích dòng và chú thích XML.
- Loại thông thường nhất là các loại “chú thích dòng” (Bất cứ khi nào bạn sử dụng // với C# hoặc VB.NET để đánh dấu một dòng là chú thích.) Loại chú thích này thường được sử dụng để giải thích những gì mà dòng lệnh hiện hành hoặc dòng mã kế tiếp đang thực hiện.
- Chú thích XML ghi chép tài liệu cho một lớp hoặc phương thức bằng cách sử dụng một phần XML. Ngoài ra, nó còn tạo tài liệu API cho ứng dụng.
Sau đây là một ví dụ về các chú thích XML được áp dụng và một phương thức C#. Vì nó xuất hiện theo thẻ mặc định, nên có thể nó là thẻ quen nhất trong các loại thẻ. Nó nên được sử dụng để ghi chép mục đích chung nhất của tất cả các phương thức public, thuộc tính và trường của một kiểu.
Các thẻ sơ cấp
1.<summary>
2. <remarks>
Thẻ này có ý nghĩa là mô tả một kiểu. Có thể bạn không biết điều này bời vì khi chèn các chú thích XML và trong Visual Studio, nó sẽ chèn thẻ <summary> thay vì chèn thẻ <remarks>. Sự khác biệt không lớn nhưng tài liệu C# đề nghị sử dụng <remarks>. Sau đây là ví dụ về thẻ remarks:
/// Hàm đánh dấu một kí tự.
/// </remarks>
private string MarkKeyword
{
……..
}
3. <value>
Tương tự như 2 thẻ trên, thẻ <value > mô tả giá trị của một thuộc tính. Nó cũng được sử dụng như các thẻ khác:
4. <param>
Thẻ <param> được sử dụng để ghi chép từng tham số của một phương thức. Đây là một trong những chú thích hữu dụng nhất bởi vì đôi khi khó nhận biết mục đích của một tham số chỉ từ tên của nó.
5. <returns>
Thẻ này được sử dụng để định nghĩa kiểu trả về của một phương thức. Từ chữ ký của phương thức, bạn biết kiểu nào nó trả về. Do đó, việc khai báo kiểu giá trị cho nó là vô ích mà hãy giải thích những gì mà giá trị trả về đó.
/// <summary>
/// Thay thế các ký tự đặc biệt bằng dấu cách
/// </summary>
/// <param name=”s”></param>
/// <returns>Giá trị trả lại là những dấu cách</returns>
private static string ReplaceSpecialChar(string s)
{
string specialChar = @”‘-%*”;// Chuỗi ký tự đặc biệt
……..
return s;
}
6. <exception>
Được sử dụng để xác định các ngoại lệ mà một kiểu có thể đưa ra. Thẻ này sử dụng một thuộc tính được gọi là cref. Thuộc tính cref được sử dụng để tham chiếu một kiểu khác. Bằng cách sử dụng thẻ <exception>, bạn nên ghi chép tất cả những ngoại lệ cụ thể mà phương thức có thể đưa ra bằng thuộc tính cref và sau đó giải thích khi nào ngoại lệ có thể được đưa ra.
Vậy biết những ngoại lệ nào mà một phương thức có thể đưa ra rất quan trọng đối với việc phát triển các ứng dụng chất lượng cao. Vì .NET không cho bạn xác định những ngoại lệ nào mà phương thức có thể đưa ra trong chữ ký phương thức.
7.<example>
Với thẻ này, có thể được sử dụng để cung cấp một ví dụ về cách sử dụng phương thức, thuộc tính hoặc trường. các ví dụ là một phần chính của việc ghi chép tài liệu chất lượng cao và không có gì có thể hướng dẫn tốt hơn cho các nhà phát triển cách làm việc với các kiểu của bạn. Bằng cách sử dụng thẻ <example> cùng với thẻ <code> (một trong những thẻ thứ cấp), bạn có thể cung cấp trực tiếp các vi dụ mã trong mã của bạn.
Bạn nghĩ sao nếu tài liệu MSDN không có các ví dụ. đó chính mà ví dụ cho sự quan trọng của thẻ <example>.
8.<permission>
Cho phép bạn xác định ai được phép truy cập kiểu của bạn. Thẻ <permission> cũng có thể chứa thuộc tính cref và hầu như luôn hướng sang System.Security.PermissionSer.
9. <seealso>
Có thể được sử dụng để tham chiếu các lớp khác hoặc những tài liệu vốn có để gây sự chú ý với người đọc tài liệu. Thẻ này cũng có chứa thuộc tính cref và bạn có thể tham chiếu các kiểu, phương thức, thuộc tính hoặc trường khác mà người dùng có thể quan tâm đến.
10. <include>
Các thẻ thứ cấp:
Có thể được sử dụng bên trong các thẻ chính. Những thẻ này được sử dụng để đánh dấu và định dạng Text để đưa vào các thẻ chính. Trong ví dụ về thẻ <example> ta cũng đã biết được thẻ <code> rồi.
1. Nhập <c> và <code>
Các thẻ <c> và <code> đều được sử dụng định nghĩa khi nào một phần Text là mã. Sự khác biệt duy nhất giữa 2 thẻ này là <c> có thể được sử dụng để đánh dấu một điều gì đó là mã nội dòng (inline) trong một câu khác, trong khi <code> được sử dụng để xác lập toàn bộ một khối Text dưới dạng mã. Có nghĩa là <code> có chứa các ngắt dòng còn <c> thì không.
Nếu bạn muốn cung cấp một ví dụ hoàn chỉnh, thì dùng thẻ <code> sẽ thích hợp hơn.
Cả 2 loại thẻ trên nên được sử dụng bất cứ khi nào bạn đưa mã vào các website của mình
2. <para>
Được sử dụng để chỉ định một đoạn trong các chú thích. Nếu các chú thích dài, bạn nên ngắt nó thành các đoạn để làm cho việc đọc trở nên dễ dàng hơn.
/// <summary>
/// Trong hàm Page_Load này, ta phải làm các công việc sau:
/// <para>
/// Kiểm tra bài viết có tồn tại hay không
/// và chỉ có những người tạo ra bài viết mới được phép sửa bài
/// và xem bài viết đó đã được xuất bản chưa?
/// Nếu chưa sản xuất thì chỉ có người duyệt bài mới được xem
/// </para>
/// </summary>
/// <param name=”sender”></param>
/// <param name=”e”></param>
protected void Page_Load(object sender, EventArgs e)
3. <paramref >
Có thể được sử dụng để tạo một tham chiếu dẫn sang một tham số. Khi mô tả một phương thức, bạn sẽ thường tham một tham số của phương thức. Bằng cách sử dụng thẻ này, công cụ tạo tài liệu có thể xác định tham số nào mà bạn tham chiếu sang và tạo một link giữa 2 tham số trong một tài liệu.
4. <see>
Thẻ <see> có thể được sử dụng giống như thẻ <seealso> ngoại trừ bạn sử dụng <see> trong ngữ cảnh của một thẻ khác. Khi bạn muốn liệt kê một số phương thức mà một lớp chứa và sử dụng thẻ <see> để tham chiếu đến những phương thức đó.
5. Các thẻ List
Loại thẻ cuối cùng là các thẻ List. Những thẻ này được tạo để sử dụng các List (danh sách). Thẻ <list> được sử dụng để tạo một List và có một thuộc tính gọi là TYPE. Thuộc tính này định nghĩa loại List nào mà bạn đang tạo; giá trị này có thể được thiết lập sang Bullet, number hoặc table. Thẻ <listheader> sau đó có thể được sử dụng để định nghĩa header (Tiêu đề) cho List. Nó có thể chứa các thẻ <term> và <description>. Sau thẻ <listheader>, thẻ <list> có thể chứa bất kỳ số thẻ <item>. Mỗi thẻ <item> tượng trưng cho một mục trong danh sách và có thể bao gồm các thẻ <term> và thẻ <description>. Mỗi mục sẽ luôn chứa một thẻ <description> , nhưng sẽ cần phải chứa thẻ <term> nếu bạn tạo một danh sách định nghĩa.
Sau đây là một ví dụ về danh sách không định nghĩa:
Còn đây là ví dụ về danh sách định nghĩa:
[HaiPhong-Aptech]
0 nhận xét:
Đăng nhận xét