C# 对象初始化器对属性赋值vs构造函数里对属性赋值

假设有以下类:

cs 复制代码
public class TestA
{
    public string A { get; set; } = "aa";
    public TestA()
    {
        A = "a";
    }
}

然后利用对象初始化器获取它的对象:

cs 复制代码
TestA a = new TestA { A = "AA" };

问:这个时候a的A属性的值是啥?

答:"AA"

原因:

一个实例构造出来的时候运作顺序是

  1. 成员上赋值的初始值
  2. 构造器中的赋值
  3. 对象初始化器赋值
相关推荐
weixin_408099679 小时前
图片去水印 API 接口实战:网站如何实现自动去水印(Python / PHP / C#)
图像处理·人工智能·python·c#·php·api·图片去水印
:mnong11 小时前
Superpowers 项目设计分析
java·c语言·c++·python·c#·php·skills
我是唐青枫11 小时前
C#.NET 分布式事务 深入解析:TCC、Saga、Outbox 与落地取舍
分布式·c#·.net
CSharp精选营13 小时前
.NET 8 性能优化实战:让你的应用起飞
性能优化·c#·.net·技术干货
fie888917 小时前
C# 文件分割与合并工具设计与实现
开发语言·c#
ytttr87318 小时前
C# 读取数据库表结构工具设计与实现
开发语言·数据库·c#
鸽子一号19 小时前
c#笔记之lambda表达式和linq
笔记·c#·linq
qq_3911053420 小时前
TDengine C# 连接示例和授权管理
大数据·数据库·c#·时序数据库·tdengine
a177988771221 小时前
小程序码的生成与获取码中的scene
小程序·c#
无风听海21 小时前
.NET10之C# Target-typed new expression深入解析
windows·c#·.net