You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中创建匿名对象时能否读取已定义的属性?

C#匿名对象创建时能否读取已定义属性?

不能。你示例代码里的this.PropA并不会引用正在创建的匿名对象的PropA属性,而是会访问当前外部类实例的PropA成员(如果外部类存在这个成员的话)。

原因很简单:匿名对象的属性初始化过程中,对象本身还未完成实例化,不存在可访问的实例引用。每个属性的初始化表达式都是独立计算的,它们之间无法互相引用同一个匿名对象内的其他属性——因为这个对象此时还没被创建出来。

如果需要复用属性值,有两种常见的替代方式:

  • 使用临时变量存储需要复用的值,再在匿名对象中引用:
var propAValue = "something";
var a = new { PropA = propAValue, PropB = propAValue + " and another thing" };
  • 如果逻辑较复杂,也可以考虑定义一个具名类来替代匿名对象,这样可以更灵活地处理属性间的依赖关系。

内容的提问来源于stack exchange,提问作者big boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:09:24