コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】null 許容型を代入する時の記述を簡略化する Deconstruction

ソースコード

public static class NullableExt
{
    public static void Deconstruct<T>
    (
        this T?   self,
        out  bool hasValue,
        out  T    value
    ) where T : struct
    {
        hasValue = self.HasValue;
        value    = self ?? default;
    }
}

使用例

var now = DateTime.Now;
var ( hasValue, value ) = new DateTime?( now );

参考ツイート