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. 对象初始化器赋值
相关推荐
格林威1 小时前
面阵相机 vs 线阵相机:堡盟与Basler选型差异全解析 +C# 实战演示
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
少控科技2 小时前
小数典 - V1.0.0.1
windows·c#
格林威2 小时前
面阵相机 vs 线阵相机:堡盟与海康相机选型差异全解析 附C# 实战演示
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
刘~浪地球3 小时前
日志平台架构设计
c#·linq
玖笙&3 小时前
✨WPF编程进阶【9.1】:WPF资源完全指南(附源码)
c++·c#·wpf·visual studio
hhb_61815 小时前
Dylan 语言核心特性与工程实践深度解析
开发语言·c#
CSharp精选营15 小时前
最新.NET新手入门学习网站合集(2026更新版)
c#·学习资料·开发教程·.net 新手入门·开放资源·.net网站
hhb_61819 小时前
C#高性能异步编程实战与底层原理深度解析
开发语言·c#
beyond谚语19 小时前
反射、特性和依赖注入
c#
Tiger_shl20 小时前
C# 托管对象、非托管对象 讲解
开发语言·c#