我应该为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
🙂