隐式转换类型 System.DateTime 的推荐方法是什么?到 System.DateOnly?
What's the recommend way to implicitly convert type System.DateTime? to System.DateOnly?
如何将可为空的 DateTime
转换为可为空的 DateOnly
?
所以 DateTime?
到 DateOnly?
错误说:
Error CS0029 Cannot implicitly convert type 'System.DateOnly?' to
'System.DateTime?'
我可以通过以下操作将 DateTime
转换为 DateOnly
:
DateOnly mydate = DateOnly.FromDateTime(mydatetime);
但是可为空值呢?
我有办法,但我认为这不是最好的主意...
我只是创建了这个方法,如果有人有更好的方法,我很乐意接受它作为答案
public DateOnly? NullableDateTime_To_NullableDateOnly(DateTime? input) {
if (input != null)
{
return DateOnly.FromDateTime(input ?? DateTime.Now); //this is irrelevant but...
}
return null;
}
您可以创建 DateTime 扩展方法:
public static class DateTimeExtends
{
public static DateOnly ToDateOnly(this DateTime date)
{
return new DateOnly(date.Year, date.Month, date.Day);
}
public static DateOnly? ToDateOnly(this DateTime? date)
{
return date != null ? (DateOnly?)date.Value.ToDateOnly() : null;
}
}
并在任何 DateTime 实例上使用:
DateOnly date = DateTime.Now.ToDateOnly();
注意:未测试,可能有 tipo 错误...
public static DateOnly? ToNullableDateOnly(this DateTime? input)
{
if (input == null) return null;
return DateOnly.FromDateTime(input.Value);
}
让我们创建一个与 FromDateTime
完全相同的方法,只是在 DateTime
上作为扩展调用:
public static DateOnly ToDateOnly(this DateTime datetime)
=> DateOnly.FromDateTime(datetime);
现在您可以使用 null-conditional 成员访问运算符 ?.
将此方法提升到可空版本:
var myNullableDateOnly = myNullableDateTime?.ToDateOnly();
不幸的是,C# 没有“null-conditional 静态方法调用运算符”。因此,我们需要这个“扩展方法解决方法”。
如何将可为空的 DateTime
转换为可为空的 DateOnly
?
所以 DateTime?
到 DateOnly?
错误说:
Error CS0029 Cannot implicitly convert type 'System.DateOnly?' to 'System.DateTime?'
我可以通过以下操作将 DateTime
转换为 DateOnly
:
DateOnly mydate = DateOnly.FromDateTime(mydatetime);
但是可为空值呢?
我有办法,但我认为这不是最好的主意...
我只是创建了这个方法,如果有人有更好的方法,我很乐意接受它作为答案
public DateOnly? NullableDateTime_To_NullableDateOnly(DateTime? input) {
if (input != null)
{
return DateOnly.FromDateTime(input ?? DateTime.Now); //this is irrelevant but...
}
return null;
}
您可以创建 DateTime 扩展方法:
public static class DateTimeExtends
{
public static DateOnly ToDateOnly(this DateTime date)
{
return new DateOnly(date.Year, date.Month, date.Day);
}
public static DateOnly? ToDateOnly(this DateTime? date)
{
return date != null ? (DateOnly?)date.Value.ToDateOnly() : null;
}
}
并在任何 DateTime 实例上使用:
DateOnly date = DateTime.Now.ToDateOnly();
注意:未测试,可能有 tipo 错误...
public static DateOnly? ToNullableDateOnly(this DateTime? input)
{
if (input == null) return null;
return DateOnly.FromDateTime(input.Value);
}
让我们创建一个与 FromDateTime
完全相同的方法,只是在 DateTime
上作为扩展调用:
public static DateOnly ToDateOnly(this DateTime datetime)
=> DateOnly.FromDateTime(datetime);
现在您可以使用 null-conditional 成员访问运算符 ?.
将此方法提升到可空版本:
var myNullableDateOnly = myNullableDateTime?.ToDateOnly();
不幸的是,C# 没有“null-conditional 静态方法调用运算符”。因此,我们需要这个“扩展方法解决方法”。