C# 我应该给DateTime属性命名什么?
如果我有一个存储日期时间的类:C# 我应该给DateTime属性命名什么?,c#,naming,C#,Naming,如果我有一个存储日期时间的类: class LogEntry { readonly DateTime dateTime; public LogEntry(DateTime dateTime) { this.dateTime = dateTime; } public DateTime ????? { get { return dateTime; } }
class LogEntry
{
readonly DateTime dateTime;
public LogEntry(DateTime dateTime)
{
this.dateTime = dateTime;
}
public DateTime ?????
{
get
{
return dateTime;
}
}
}
DateTime属性应该命名为什么?或者我应该将该属性拆分为两个属性:1)日期2)时间
编辑:我正在寻找一个属性名,该属性名可以推断其值是日期和时间,而不是特定于日志条目的属性(例如,DateCreated不提供任何推断,即它也共享创建条目的时间,反之亦然)。
当
在日志中是一个好名称时
编辑:从Offic命名指南:“<强> do/Stand >考虑将一个属性命名为与它的类型相同。 这导致
public DateTime DateTime { get { ... } }
任何简单的名称都不会与其他名称冲突,例如
DateTime
本身,并且是描述性的。因为它是一个日志条目,所以可以称之为EntryTime
LogDate
CreatedDate
EntryDate
StarDate // **
选择一个您认为最能描述属性的名称。而且,不,不要分割财产。任何对您(和您的团队)有意义的事情。您可以使用
EntryDateTime
,因为这是有意义的。如果您需要将日期和时间分开,那么创建单独的方法是值得的,但是没有必要仅仅因为命名的原因而将两者分开。您应该在代码库中为时间戳选择一个约定,然后坚持这个约定。例如,我将所有时间戳称为“updated_at”或“created_at”。其他选项为CreatedDate和UpdateDate
不要将日期和时间分割为单独的属性。这样做的唯一原因是对高容量处理进行某种优化,在这种优化中,您明确地将日期解析识别为瓶颈 与这里的大多数建议不同,我会使用
DateCreated
,因为在查找创建日期时输入“date”是很直观的。我也不认为有什么问题,只有“日期”出现在名称中,而不是“时间”。这是经常发生的,也是可以接受的。时间戳
也许吧?那么时间戳
呢?您应该选择一个描述性名称作为属性的用途
如果是CreateDate,则为“CreateDate”。。非常不言自明
对于日志记录,可以使用“LoggedTimeStamp”、“LoggedDateTime”等。日期只是时间的粗略度量,它将24小时集中到同一个单位中。就鸡和蛋而言,时间先于日期:时间是物理实体,日期只是计量单位。DateTime数据类型有助于混淆问题,并导致许多人将时间视为日期的一部分。这是完全错误的!爱因斯坦没有提到太空日期,是吗 您的名字应该描述实际发生的情况,而不是详细说明数据类型(Lezinski,或其他他的名字,显然没有intellisense可供使用) 所以LogTime或EntryTime都是最好的名字 混淆数据类型、度量单位和物理实体是概念上的错误,会导致程序员走上花园之路
而且它不是伊甸园。假设LogEntry用于日志记录,下面是一些其他日志记录平台的实现方式: log4net在结构中调用它的时间戳 NLog在课堂上称之为TimStamp 企业库在类中调用它timeStamp
Microsoft在类中称之为DateTime(TraceEventCache被传递到TraceListener Trace*调用中。DateTime是生成日志消息的时间)。关于该问题的评论说,该问题不应是特定于类的 尽管正确的答案是特定于类的,但它与属性是DateTime这一事实无关(我们已经知道它是日期和时间,因为它是数据和时间)。属性将以特定的原因存在,这就是我们应该考虑命名时的原因。 尽管如此,在请求非特定于类的属性名称时,我提供:
public DateTime TheMomentOfTruth
:)@Michael,我实际上是想说那是StarDate。这是个笑话,我完全同意。所有属性都应该被进一步限定,而不仅仅是类型名,即使其目的看起来非常明显(比如日志条目);根据维基百科的条目,它已经有了一个普遍的共识,即它可能同时代表一个日期和一个时间,并且必然只代表一个或另一个。这里的小问题可能是时间戳也用于时钟计数(Ticks)属性。因此,挂钟的性质并不完全明显。奎布尔同意。现在回想起来,我希望我没有包括示例类,因为这个问题不是特定于类的。这有点倒退。使用DateTime是一种黑客行为,当一个只意味着一个日期时,虽然这是一种合理的行为,我可以理解为什么你想清楚地表明你这么做了,但我不认为有必要发出信号“这不是我将某件事黑客化为超出必要范围的类型”。+1:检查有多大的商业应用程序这么做,是解决问题的最佳策略之一(如果可用)。参考命名指南: