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. 对象初始化器赋值
相关推荐
Artech10 分钟前
[对比学习LangChain和MAF-03]完全不同的Agent设计哲学
python·ai·langchain·c#·agent·maf
xiaoshuaishuai825 分钟前
C# CUDA 到 OpenCL 迁移
开发语言·windows·c#
richard_yuu41 分钟前
C#开发全景概述:从零读懂C#的定位、优势与完整技术体系
开发语言·c#
Xin_ye1008643 分钟前
C# 零基础到精通教程 - 第十二章:异常处理与调试——让程序更健壮
开发语言·c#
楼田莉子1 小时前
C#学习之C#入门学习
开发语言·后端·学习·c#
小钻风33661 小时前
从零入门 Kafka:Java 原生 API 到 Spring Boot 实战全解析
c#·linq
唐青枫1 小时前
C#.NET YARP + OpenTelemetry:网关链路追踪实战
c#·.net
Xin_ye1008613 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
rockey62713 小时前
AScript异步执行与await关键字
c#·.net·script·eval·expression·异步执行·动态脚本
程序leo源15 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#