2016-05-29 8 views
9

備考タグはクラスに関する追加情報を提供するのに使用されていますが、そのクラスをホバーする/呼び出す際にはインテリセンスで表示されないことを理解しています。私は正確にどこが有用か知りたいですか?備考タグの目的は何ですかc#

+2

は残念ながら、答えのどれもが本当にタイトルからの質問に答えない:__whatは、C#で発言タグのpurpose__です。私がここに書いたものと私がしないものは何ですか? – pkuderov

答えて

6

備考はドキュメントファイルの作成に使用されます。これらは、より詳細なコメントとして使用され、サマリータグに補足情報を追加します(「サマリー」タグはインテリセンスに表示されます)。

生成されたドキュメントファイルはXML形式です。

ドキュメントファイルを生成するには、 "/ doc"コンパイラオプションを追加する必要があります。 Visual Studioで あなたがして、XMLドキュメントファイルの生成を有効にすることができます。

  1. を右クリックし、プロジェクト名を - プロパティ
  2. Goは、(チェック)XMLドキュメントファイルオプション
  3. を有効に
  4. タブを構築するために>
+0

ありがとうございます。これはそれをうまく説明します。 –

3

.NETの多くのタグは、ドキュメントを生成する際に実際に活用されています。おそらく、最も人気があり、私が使用するのはサンドキャッスルです。ここで

は1つのではなく、古いブログ記事は、トピックを議論されていますが、ポイントを取得します:。

「私は.NETオブジェクトを飾るためにXMLコードのコメントを使用しての概念を知っていると思うほとんどの開発者あり本当に2つのメリットがあります:1)オブジェクトを消費しているときにこの情報をIntellisenseで表示し、2)MSDNのようなプロダクションコンポーネントのドキュメントを作成することができます。

出典:次のように彼らが正しく作成されている場合XML Code Comments and Sandcastle, demystified!

1

これらのタグは、作成したクラス、関数やプロパティについてのヒントを与えるには、Visual StudioののIntelliSenseによって使用されます。

C#(そしてVisual Studioのコードエディタで)///(2つではなく3つのスラッシュ)を入力し、Returnキーを押すと簡単に実行できます。

これは「XMLコメント」を作成し、最も一般的なタグ(メソッドの各パラメータのパラメータタグなど)を追加します。
カーソルがクラスの上にある場合、<summary>タグが作成されます。メソッドの上にある場合は、各パラメータに<param>タグが追加され、戻り値には<returns>タグが追加作成されます。

他のものは、のコメント(下記の例を参照)の中にカーソルがある間、IntelliSenseによって提案されます。私の知る限り、<summary><param>のタグだけがIntelliSenseで使用されています。これらのタグのいずれかにcref属性が含まれている場合は、他の項目を参照することができます(例のように)。

さらに、他の回答が説明しているように、XML文書を作成できます。この文書は、サードパーティのツールを使用してハイパーリンク文書または静的HTMLファイルに変換できます。

例:

/// <summary> 
/// Description what the class does 
/// </summary> 
public class MyClass 
{ 
    /// <summary> 
    /// Description what the function does 
    /// </summary> 
    /// <param name="param1">Description what the parameter does 
    /// Optional tags inside param1: 
    /// <c></c> <code></code> <list type=""></list> <paramref name="param1"/> 
    /// <para></para> 
    /// </param> 
    /// <param name="param2">Description what the parameter does</param> 
    /// <returns>Description about the return value</returns> 
    public string MyMethod(int param1, string param2) 
    { 
     return "Some value: " + MyProperty; 
    } 

    /// <summary> 
    /// Description what the property does 
    /// </summary> 
    /// <see cref="MyMethod(int, string)"/> 
    string MyProperty { get; set; } 

    // optional tags (valid for class and methods): 

    /// <completionlist cref=""/> 
    /// <example></example> 
    /// <exception cref=""></exception> 
    /// <include file='' path='[@name=""]'/> 
    /// <permission cref=""></permission> 
    /// <remarks></remarks> 
    /// <see cref=""/> 
    /// <seealso cref=""/> 
} 
関連する問題