C# 使用;如果;关于时间文字(格式化帮助)
我有一个时间对象,如果为null,出于某种原因会被解释为C# 使用;如果;关于时间文字(格式化帮助),c#,C#,我有一个时间对象,如果为null,出于某种原因会被解释为00:00:00。如果它为空,我需要做一个测试,但现在我做不到,所以我需要等效的: if (TimeObject == 00:00:00) {... 这个if语句的格式是什么?首先,C不支持时间文本,因此对于标准C编译器来说,00:00:00没有意义 其次,为了处理时间,您需要使用或结构 第三,因为这些是结构,所以它们永远不能是null——它们有默认值,但不允许DateTime dt=null如果您想要一个可为空的结构,请使用(因此Dat
00:00:00
。如果它为空,我需要做一个测试,但现在我做不到,所以我需要等效的:
if (TimeObject == 00:00:00) {...
这个if语句的格式是什么?首先,C不支持时间文本,因此对于标准C编译器来说,00:00:00
没有意义
其次,为了处理时间,您需要使用或结构
第三,因为这些是结构,所以它们永远不能是
null
——它们有默认值,但不允许DateTime dt=null代码>如果您想要一个可为空的结构,请使用(因此DateTime?
和TimeSpan?
)您可以包括您的时间对象的定义吗?这个“时间”对象是什么?如果它是一个系统.DateTime
,我很怀疑它的值是否为“00:00:00”。C#(尚未)中没有DateTime
文本。如果你的TimeObject
为null,那么简单的TimeObject==null
应该可以工作。如果它被“解释”(由谁?)为00:00:00
,那么它可能不是空的。但是什么是TimeObject
呢?如果你的TimeObject是System.TimeSpan
类型,你可能会检查TimeObject==TimeSpan.Zero
谢谢,我会把它改成一个可为空的类型。如果TimeObject只是一个结构,那么一定要将它与newtimeobject()
进行比较,省略任何参数都可以完成您希望完成的工作?我仍然会将其设置为可空,但以防您出于任何原因无法访问DatTime代码。是的,将结构与new\u__;()
进行比较会起作用,但阅读起来可能会产生误导,这就是为什么我更喜欢default(\u__;)
的原因DateTime
是.NET Framework的一部分-如果您没有访问权限,您使用的是C#的实现,您应该在问题中指定。老实说,您甚至不知道默认值,谢谢您的评论。