我应该为DateTime属性命名什么?

如果我有一个存储DateTime的类:

class LogEntry { readonly DateTime dateTime; public LogEntry(DateTime dateTime) { this.dateTime = dateTime; } public DateTime ????? { get { return dateTime; } } } 

我该怎么命名DateTime属性? 或者我应该将属性拆分为2个属性:1)日期2)时间?

编辑:我正在寻找一个属性名称,提供推断,它的值既是日期又是时间,而不是特定于日志条目的属性(例如,DateCreated不提供任何推断,它也分享创建条目的时间反之亦然)。

TimeStamp可能吗?

When是日志中的好名字。

编辑:并从官方命名指南:“请考虑将属性命名为与其类型相同。” 这导致了

  public DateTime DateTime { get { ... } } 
 LogDate CreatedDate EntryDate StarDate // ** 

选择一个您认为最能描述该属性的名称。 并且,不,不要拆分财产。

假设LogEntry用于日志记录,以下是其他一些日志记录平台的工作方式:

log4net在LoggingEventData结构中将其称为TimeStamp。

NLog在LogEventInfo类中将其称为TimStamp。

Enterprise Library在LogEntry类中将其称为timeStamp。

Microsoft在TraceEventCache类中将其称为DateTime(TraceEventCache传递给TraceListener Trace *调用.DateTime是生成日志消息的时间)。

任何简单的东西,都不会与DateTime本身等其他名称冲突,并且是描述性的。 由于它是一个日志条目,你可以称之为EntryTime

与此处的大多数建议不同,我使用DateCreated因为当您查找创建日期时,直接开始键入“date”。 我也不认为只有“日期”出现在名称中而不是“时间”。 这是经常和可接受的。

那么TimeStamp呢?

您应该在代码库中选择时间戳的约定,然后坚持下去。 例如,我将所有时间戳都调用为“updated_at”或“created_at”。 其他选项包括CreatedDate和UpdateDate。

不要将日期和时间拆分为单独的属性。 您这样做的唯一原因是对于高容量处理进行某种优化,您明确将日期解析标识为瓶颈。

无论对你(和你的团队)有什么意义。 您可以使用EntryDateTime因为这是有意义的。 如果您需要将日期和时间分开,那么创建单独的方法是值得的,但是没有必要仅仅为了命名原因而拆分这两个方法。

你应该选择一个描述性的名称作为财产的作用……

如果它为CreateDate然后“CreateDate”..非常自我解释。

对于日志记录,您可以使用“LoggedTimeStamp”,“LoggedDateTime”等。

日期只是时间的粗粒度量,将24小时混合到同一单位。 以鸡和蛋为例,时间在日期之前:时间是物理实体,日期只是一个度量单位。 DateTime数据类型有助于混淆问题,并导致许多人将Time视为Date的一小部分。 这是完全错误的! 爱因斯坦没有谈论太空日期,是吗?

你的名字应该描述实际发生的事情,而不是详细说明数据类型(Lezinski,或者他的名字,显然他没有智能感知)。

所以LogTime或EntryTime都是最好的名字。

混淆数据类型,测量单位和物理实体是导致程序员走上花园路径的概念错误。

它不是伊甸园。

对该问题的评论说,这个问题不应该是针对特定阶级的。

正确的答案虽然是类特定的,但它与属性是DateTime的事实无关(我们已经知道它是一个日期和时间,因为它是一个数据和时间)。 该属性将由于特定原因而存在,这就是我们在命名时应该考虑的原因。

尽管如此,在提出非特定属性名称的请求时,我提供:

 public DateTime TheMomentOfTruth 

🙂