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;