Nullable で DateTime.TryParse を使用するにはどうすればいいですか? ? 質問する

Nullable で DateTime.TryParse を使用するにはどうすればいいですか? ? 質問する

DateTime.TryParse メソッドを使用して、文字列の datetime 値を Nullable に取得したいのですが、次のようになります。

DateTime? d;
bool success = DateTime.TryParse("some date text", out (DateTime)d);

コンパイラは私に言う

'out'引数は変数として分類されません

ここで何をすべきかわかりません。次のことも試しました:

out (DateTime)d.Value 

それも機能しません。何かアイデアはありますか?

ベストアンサー1

Jason が言うように、適切な型の変数を作成してそれを渡すことができます。独自のメソッドでそれをカプセル化することもできます。

public static DateTime? TryParse(string text)
{
    DateTime date;
    if (DateTime.TryParse(text, out date))
    {
        return date;
    }
    else
    {
        return null;
    }
}

...または条件演算子を使用する場合:

public static DateTime? TryParse(string text)
{
    DateTime date;
    return DateTime.TryParse(text, out date) ? date : (DateTime?) null;
}

または C# 7 の場合:

public static DateTime? TryParse(string text) =>
    DateTime.TryParse(text, out var date) ? date : (DateTime?) null;

おすすめ記事