auto属性的C#糖语法



我曾经看到一个viewo,其中在c#中使用了以下语法:

class A
{
DateTime CreationDate
{
get;
set => backing = value.Date;
}
}

主要的是backing关键字,对于backfield,我记不清了。C#中有类似的东西吗?如果是,在哪个版本?不幸的是,我找不到任何C#参考文档。


根据评论更新

下面的示例正在工作,但我不想创建自己的后台字段。我想到达编译器创建的backing字段。

class A
{
DateTime CreationDate
{
get;
set => backing = value.Date;
}
private DateTime backing;
}

这可能是以下情况,所以for。但在C#11中,这可能会改变:

internal class A
{
private DateTime _creationDate;
public DateTime CreationDate
{
get
{
return this._creationDate;
}
set
{
this._creationDate = value.Date;
}
}
}

属性可以与表达式体成员一起使用:

class YourClass
{
private DateTime creationDate;
public DateTime CreationDate
{
get => this.creationDate;
set => this.creationDate = value.Date;
}
}

除了getter实现中的附加主体之外,这看起来几乎与您的代码相似。

当然,this是可选的,因此它与问题中的代码更加相似:

class YourClass
{
private DateTime creationDate;
public DateTime CreationDate
{
get => creationDate;
set => creationDate = value.Date;
}
}

区别:get;变为get => creationDate;(添加箭头和背景字段(,set backing = value.Date;变为set => creationDate = value.Date;(添加箭头并更改背景字段名称(

最新更新