ドキュメントコメントの書き方、使い方

VisualStudioを使っていると、インテリセンスでヒントが表示され、開発のヘルプになっているのが便利ですね。
これは、自作のクラス、メソッド、コンストラクタなど多くのところでも使うことができます。
クラスが複数に分かれている場合、どのように機能を持っているのかいちいちコードに戻って調べることなく、概要を知ることができます。では、これを実現する方法を見ていきましょう。

次のような表示を出すことができます。

元のコード

using UnityEngine;

class Player
{
    public int Hp { get; set; }
}

public class Sample : MonoBehaviour
{
    Player player;

    void Start()
    {
        player = new Player();
        player.Hp = 10;
        Debug.Log(player.Hp);
    }
}

クラスのドキュメントコメント

class Playerの上の行に次のように///を入力します

///
class Player
{
    public int Hp { get; set; }
}

3つ目の/を入力した時点で次のような表示になると思います

/// <summary>
/// 
/// </summary>
class Player
{
    public int Hp { get; set; }
}

<summary> と </summary>の間に概要を入力します

/// <summary>
/// これは、私が作ったクラスです
/// </summary>
class Player
{
    public int Hp { get; set; }
}

これで、ホバーのヒントが表示されるようになりました。

プロパティのドキュメントコメント

まず、結果ですが次のようになります。

クラスの時の作成と同じようにします

/// <summary>
/// これは、私が作ったクラスです
/// </summary>
class Player
{
    /// <summary>
    /// ヒットポイント
    /// </summary>
    public int Hp { get; set; }
}

メソッドのドキュメントコメント

まず、結果ですが次のようになります。

入力中にメソッドの引数の説明を表示

元のコード

using UnityEngine;

class Player
{
    public string Double(int value)
    {
        return $"{value} の 2倍は {value * 2} です";
    }
}

public class Sample : MonoBehaviour
{
    Player player;

    void Start()
    {
        player = new Player();
        Debug.Log(player.Double(3));
    }
}

この場合も同じように///を入力します。
自動で、次のようなコードが生成されます

    /// <summary>
    /// 
    /// </summary>
    /// <param name="value"></param>
    /// <returns></returns>
    public string Double(int value)


<param>は、パラメータのことです。引数ですね。
<return>は、戻り値です。

次のようにコメントを追加します。

using UnityEngine;

class Player
{
    /// <summary>
    /// 整数を2倍にする
    /// </summary>
    /// <param name="value">2倍にしたい元の整数</param>
    /// <returns>2倍にした結果</returns>
    public string Double(int value)
    {
        return $"{value} の 2倍は {value * 2} です";
    }
}

public class Sample : MonoBehaviour
{
    Player player;

    void Start()
    {
        player = new Player();
        Debug.Log(player.Double(3));
    }
}

複数行の概要を記入する

1行目を入力後、エンター(改行)キーで、次の行入力ができます。

/// <summary>
/// これは、私が作ったクラスです
/// 2行目のコメント
/// 3行目のコメント
/// </summary>
class Player
{
    public int Hp { get; set; }
}

コメントを折りたたむ

ドキュメントコメントは複数行に渡りますので、コードの見通しが悪いなと感じたら折りたたむことで解消できます

折りたたむ前

折りたたんだ後

オーバーロード

メソッドのオーバーロード場合、どのようになるかみてみましょう

class Player
{
    /// <summary>
    /// 足し算
    /// </summary>
    /// <param name="val1">1つ目の整数</param>
    /// <param name="val2">2つ目の整数</param>
    public void Add(int val1, int val2)
    {
        Debug.Log(val1 + val2);
    }

    /// <summary>
    /// 足し算
    /// </summary>
    /// <param name="val1">1つ目の整数</param>
    /// <param name="val2">2つ目の整数</param>
    /// <param name="val3">3つ目の整数</param>
    public void Add(int val1, int val2, int val3)
    {
        Debug.Log(val1 + val2 + val3);
    }
}

呼び出し側で確認してみましょう。
途中まで入力すると、+1オーバーロードと表示されます

( を入力すると、次の必要な引数(val1)の説明が表示されるのがわかります。
また、1 of 2と表示され、オーバーロードが2つあることがわかります

上下の矢印、または、マウスで^マークをクリックすると次のオーバーロード候補が表示されます。

1つ目の引数を入力すると引き続き、2つ目の引数の説明が表示されます

ドキュメントを文章にして、ブラウザで表示できるようにする方法

参考

C#,Unity,便利機能

Posted by hidepon