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. 对象初始化器赋值
相关推荐
iCxhust1 小时前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
ceclar1233 小时前
C# 的任务并行库(TPL)
开发语言·c#·.net
xiaoshuaishuai84 小时前
C# 委托与事件
开发语言·c#
Song_da_da_4 小时前
C# 接口(Interface)深度解析:规范、解耦与灵活扩展
开发语言·c#
政沅同学4 小时前
基于 C# WPF + HALCON 的工业视觉算法工具框架(开源)
开发语言·c#·wpf
影寂ldy4 小时前
C#WinForm 窗体基础(入口、部分类、属性、生命周期事件)
开发语言·c#
ceclar1235 小时前
C#异步编程async与await
c#·.net
周杰伦fans5 小时前
续集:工作空间一切换,我的插件菜单就消失?——MenuBar与Ribbon的自动重载方案
后端·ribbon·c#
ysn111116 小时前
红点框架系统设计
系统架构·c#