gpt4 book ai didi

c# - 自动属性初始化与构造函数初始化哪个优先?

转载 作者:行者123 更新时间:2023-12-03 22:46:42 24 4
gpt4 key购买 nike

假设我正在这样做......

public class Customer
{
public Customer()
{
customerID = Guid.NewGuid();
}

public Guid customerID { get; set; } = Guid.NewGuid();
}

...因为,我知道随着我的开发团队转向 C#6.0,这将会发生。哪个将优先/使用(构造函数 NewGuid() 或属性 NewGuid()),为什么?我们什么时候应该使用一个或另一个作为最佳实践?

最佳答案

自动属性初始值设定项基本上是语法糖:

private Guid _customerID = Guid.NewGuid();
public Guid customerID
{
get { return _customerID; }
set { _customerID = value; }
}

所以实际的问题是:什么先运行,字段初始值设定项或构造函数。答案早就知道了——字段初始值设定项首先运行,然后是构造函数。因此,在您的示例中,在构造函数中写入的值将覆盖来自字段初始值设定项的值。

关于c# - 自动属性初始化与构造函数初始化哪个优先?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37148712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com