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. 对象初始化器赋值
相关推荐
qq_4542450322 分钟前
BuildTemplateGraph 函数深度解析:动态节点图构建的架构设计与核心价值
数据结构·c#
qq_454245031 小时前
SkeletonFlow:基于组合子逻辑与范畴论的数据流处理框架
数据结构·c#
游乐码2 小时前
c#静态类和静态构造函数
开发语言·c#
net3m333 小时前
自动分工 现象时,一共有几种可能得权重组合变化,如何确保这些组合的扫描时的不发生组合爆炸
人工智能·c#·ai编程
bugcome_com3 小时前
C# 方法详解:定义、调用与参数传递
c#
光泽雨4 小时前
AppDomain
c#
bugcome_com4 小时前
C# 可空类型(Nullable)详解
c#
大Mod_abfun6 小时前
Socket网络通信教程1(文件传输,IPv4+v6,多客户端管理,重构?)
服务器·网络·c#·socket·vb.net·文件传输
czhc11400756637 小时前
ModBus 218
c#
Never_Satisfied19 小时前
在c#中,使用windows自带功能将文件夹打包为ZIP
开发语言·windows·c#