更喜欢实例数据而不是静态数据。
静态数据实际上是全局状态。在您的程序的生命周期中,您是否只有一个事件?如果需要支持多线程怎么办?这是面向对象的编程;使用对象。
封装数据。
避免公开字段。正如其他人所说,更喜欢属性。请注意,这允许在构造时(并且仅在那时)分配创建时间。
使用适当的类型。
如果您要存储日期/时间值,通常您会使用 DateTime 类。
支持不变性。
如果你在构建时就知道属性的值,那么就设置它们,不要让它们被改变。
想想名字。
描述性名称很重要,尤其是当您在六个月后进行维护时。在我的示例中,我没有更改 LocalDB 的名称,因为我不知道您的域或用例。然而,这个类在我看来更像是一个事件而不是数据库。 Event 会是一个更好的名字吗?
以下示例使用 C# 6 语法;早期版本需要添加私有设置器并将初始化移动到构造函数。
public class LocalDB
{
public LocalDB(int sessionID, string eventName)
{
SessionID = sessionID;
EventName = eventName;
}
public int SessionID { get; }
public string EventName { get; }
public DateTime TimeCreate { get; } = DateTime.UtcNow;
}
public class Other
{
public void DoSomething()
{
NewEvent = new LocalDB(1, "Other Event");
}
public LocalDB NewEvent { get; private set; }
}
此示例中的一个缺陷是Other 实例的NewEvent 属性在创建时将是null。尽可能避免使用空值。也许这应该是事件的集合;不知道你的用例我不能说。