2009-03-26 29 views
38

Viết một số tài liệu XML cho một lớp trợ giúp vị ngữ. Nhưng tôi không thể hiểu được tôi có thể tham chiếu đến một số Expression<Func<T, bool>> mà không nhận được lỗi cú pháp. Thậm chí có thể không? Tôi đã thử điều này:Đề cập đến một loại chung loại chung trong tài liệu C# XML?

<see cref="Expression{Func{T, bool}}"/> 

Nhưng tôi nhận được đường kẻ màu đỏ dưới {T, bool}}. Công việc này mặc dù:

<see cref="Expression{TDelegate}"/> 

Bất kỳ ai có đầu mối?


Cập nhật:

Câu trả lời đó đã được đưa ra (và tôi chấp nhận) dường như đã làm việc. Nhưng bây giờ tôi đã bắt đầu nhận được rất nhiều cảnh báo về những thứ không thể giải quyết được. Tôi có một lớp được gọi là ExpressionBuilder<T> hoạt động với số Expression<Func<T, bool>> rất nhiều. Vì vậy, tất nhiên tôi muốn đề cập đến điều đó trong các bình luận XML của tôi.

Tôi đã thử cả hai phiên bản mà tôi biết về:

<see cref="Expression&lt;Func&lt;T, Boolean&gt;&gt;"/> 
<see cref="Expression{Func{T, Boolean}}"/> 

Nhưng không phải làm việc. (Và trên người cuối cùng, ReSharper đặt một màu xanh nguệch ngoạc dưới {T,Boolean}} tôi nhận được hai cảnh báo dưới biên soạn ở khắp mọi nơi tôi đã sử dụng nó mà nói rằng:

  1. XML bình luận về 'blah blah' đã cref Biểu hiện thuộc tính '> 'mà không thể được giải quyết
  2. khai tham số loại phải là một định danh không phải là một kiểu. Xem thêm lỗi CS0081.

có cùng một vấn đề ở đâu đó tôi đã cố gắng để chỉ Range<Nullable<DateTime>> (Range<DateTime?> không hoạt động. Cả hai đều có {} và với &lt; &gt;)

Tôi không được phép tham khảo các loại thuốc generic này?

+2

Tôi sắp hỏi cùng một câu hỏi. Phải mất một lúc tôi mới tìm được cái này vì tiêu đề không phải là từ khóa-y. Tôi có thể đề xuất, "Làm thế nào để tôi tham khảo một loại chung của một loại chung trong tài liệu XML C#"? Bạn cũng có thể thêm thẻ "generics". Tôi không có đại diện để tự mình làm. –

+0

done =) – Svish

+0

hoạt động tốt trong VS2015, Reshaper 9 – Alex

Trả lời

37

Dường như không có cách nào đề cập đến một chung chung của một tài liệu XML chung chung, bởi vì trên thực tế, không có cách nào để chỉ chung một loại cụ thể nào.

Lasse V Karlsen của answer đã làm cho nó nhấp cho tôi:

Nếu bạn viết <see cref="IEnumerable{Int32}" />, trình biên dịch chỉ sử dụng "Int32" như tên tham số kiểu, không phải là đối số kiểu. Viết <see cref="IEnumerable{HelloWorld}" /> cũng sẽ hoạt động. Điều này có ý nghĩa vì không có trang cụ thể trong MSDN cho "IEnumerable of int" mà tài liệu của bạn có thể liên kết đến.

Để ghi lại lớp học của bạn đúng, tôi nghĩ rằng bạn sẽ phải viết một cái gì đó như:

<summary> 
Returns an <see cref="IEnumerable{T}" /> of <see cref="KeyValuePair{T,U}" /> 
of <see cref="String" />, <see cref="Int32" />. 
</summary> 

Tôi hy vọng bạn thích văn bản.

+4

Không, tôi ghét văn bản, đó là lý do tôi hỏi câu hỏi này. Oh well ... có thể trong một phiên bản tương lai của xml-doc: p – Svish

3
// Use "&lt;" instead of "<" symbol and "&gt;" instead of ">" symbol. 

// Sample: 

<see cref="Expression&lt;Func&lt;T, bool&gt;&gt;"/> 
+0

Ôi ... đó là xấu xí ... nhưng nó hoạt động =/Tại sao nó chấp nhận {} cho một loại nhưng không nhiều hơn, loại? – Svish

+0

Bạn có chắc chắn về điều này? –

+1

Chắc chắn về điều gì? Như tôi đã nói, tôi không nhận được dòng chữ màu đỏ khi sử dụng 'Expression {TDelegate}' hoặc ví dụ 'List {String}'. Trên thực tế, khi tôi viết . Khi tôi viết Danh sách và nhấn enter, nó sẽ tự động hoàn thành Danh sách {T}. – Svish

12

Chính xác bạn muốn liên kết tới điều gì?

Không có nội dung nào trong tài liệu dưới dạng Expression<Func<T>>, do đó, rõ ràng liên kết đến điều đó sẽ không hoạt động.

Bạn có thể liên kết đến Expression<TDelegate> vì điều đó tồn tại.

Đối với những gì làm việc hay không, không ai trong số các công việc sau trong Visual Studio 2008/NET 3.5 cho tôi:

/// <see cref="Expression&lt;Func&lt;T&gt;&gt;"/>. 
/// <see cref="Expression{Func{T}}"/>. 

Nhưng công trình này:

/// <see cref="Expression{T}"/>. 

như vậy rõ ràng các loại generic tham số không phải giống với thông số trong khai báo.

+0

Vì vậy, không có cách nào đề cập đến loại chung với loại spesific tranh luận? Giống như nếu tôi có một hàm trả về một List >, tôi chỉ có thể nói rằng nó trả về một List ? – Svish

+0

Hoặc một Danh sách .. có vẻ như hoạt động như vậy ... – Svish

+2

Đó là vì "Chuỗi" sau đó chỉ được sử dụng làm tên loại chung. Hãy thử List và nó sẽ hoạt động tốt. –

0

Tôi hiện đang chạy vào tính năng này vì tôi có chức năng trả về List<List<byte>>. Yeah, nó xấu xí, nhưng tôi không viết nó. Từ chối trách nhiệm tiêu chuẩn, tôi biết.

Dù sao, trong VS 2017 với R # Cuối cùng 2017,1, bình luận doc này ...

<returns><see cref="List{List{Byte}}" /> of split frames</returns> 

... mang lại cho tôi một lỗi cú pháp. Tuy nhiên, điều này ...

<returns><see><cref>List{List{byte}}</cref></see> of split frames</returns>

... không. Eeeenteresting.

Vẫn còn xấu xí? Vâng.

xấu xí? Tôi nghĩ nó ít kinh khủng hơn việc sử dụng &lt;&gt; bản thân mình ....

0

Không sử dụng phần tử xem trống (<see cref="..." />). Thay vào đó, hãy đặt văn bản bên trong phần tử xem

<see cref="IEnumerable{T}">IEnumerable</see>&lt;<see cref="..."/>$gt; 
Các vấn đề liên quan