🗨️

【C#】record 型のプロパティへのドキュメント コメントの書き方

2022/08/21に公開

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

record 型はプロパティへとコンストラクタ引数が一体化しているのでコンストラクタで定義してあげればプロパティにデータが引き継がれます。

/// <summary>
/// 日時を保持する
/// </summary>
/// <param name="Date">日付</param>
/// <param name="Time">時刻</param>
public record MyDateTime(DateOnly Date, TimeOnly Time);

プロパティを上書きしたときの書き方

record 型のプロパティは上書き可能です。
https://ufcpp.net/study/csharp/datatype/record/#manual-override

そんなときは inheritdoc で指定してあげましょう。
paramsummary で形式が合わないので path の指定が必要です。

どちらを inheritdoc にしても書けます。
個人的には param の方を元定義にして summaryinheritdoc にするのが好みです。

/// <summary>
/// 日時を保持する
/// </summary>
/// <param name="Date">日付</param>
/// <param name="Time"><inheritdoc cref="Time" path="/summary"/></param>
public record MyDateTime(DateOnly Date, TimeOnly Time)
{
    /// <summary>
    /// <inheritdoc cref="MyDateTime" path="/param[@name='Date']"/>
    /// </summary>
    public DateOnly Date { get; init; } = Date == default ? DateOnly.FromDateTime(DateTime.Now) : Date;

    /// <summary>
    /// 時刻
    /// </summary>
    public TimeOnly Time { get; init; } = Time == default ? TimeOnly.FromDateTime(DateTime.Now) : Time;
}
GitHubで編集を提案

Discussion