C# 创建类实例时,如何将值硬编码到属性变量?

C# 创建类实例时,如何将值硬编码到属性变量?,c#,.net,C#,.net,我专门在C#中创建了一个简单的应用程序。我的“Item”类中有一个名为“DateTimeCreated”的公共属性。我希望在创建新“项目”时设置当前日期/时间。我从创建和编辑cshtml页面中删除了相关的标记,因为我不希望创建或编辑它,而是希望在创建Item类的实例时标记它。 我的项目类的一部分我有 public DateTime DateTimeCreated { get { Return DateTimeCreated; } set { DateTime timeStamp = DateTi

我专门在C#中创建了一个简单的应用程序。我的“Item”类中有一个名为“DateTimeCreated”的公共属性。我希望在创建新“项目”时设置当前日期/时间。我从创建和编辑cshtml页面中删除了相关的标记,因为我不希望创建或编辑它,而是希望在创建Item类的实例时标记它。 我的项目类的一部分我有

public DateTime DateTimeCreated
{
get
{
Return DateTimeCreated;
}
set
{
DateTime timeStamp = DateTime.now;
DateTimeCreated = timeStamp;
}
}
运行应用程序时,我没有收到任何错误,但只要我单击“创建”以提交新“项目”的创建,浏览器就会崩溃。如果我把它改成简单的

public DateTime DateTimeCreated { get; set; }
浏览器不会崩溃,但该值是默认的DateTime.now值01/01/0001 01:02或类似的值
我这样做是正确的,但需要调整,还是我的方法都错了?

只需将第二个属性更改为此

public DateTime DateTimeCreated { get; set; } = DateTime.Now;
如果属性只需要在对象创建时设置一次,则可以删除
,就像这样

public DateTime DateTimeCreated { get; } = DateTime.Now;

只需将第二个属性更改为

public DateTime DateTimeCreated { get; set; } = DateTime.Now;
如果属性只需要在对象创建时设置一次,则可以删除
,就像这样

public DateTime DateTimeCreated { get; } = DateTime.Now;

returndatetimecreated
DateTimeCreated=时间戳是递归的,因为您引用的是同一个属性。也许您想要
public dateTime DateTimeCreated{get;}=dateTime.Now
(如果您想允许更改,可以使用
get;set;
public DateTime DateTimeCreated{get;set;}=DateTime.Now
返回日期时间已创建
DateTimeCreated=时间戳是递归的,因为您引用的是同一个属性。也许您想要
public dateTime DateTimeCreated{get;}=dateTime.Now
(如果您想允许更改,可以使用
get;set;
public DateTime DateTimeCreated{get;set;}=DateTime.Now