【发布时间】:2015-06-25 11:26:03
【问题描述】:
在创建动态对象匿名类型对象(即在对象初始化程序内部)期间,属性是否可能以某种方式相互引用?下面我的简化示例需要重用Age 属性,而无需再次大量调用GetAgeFromSomewhere()。当然是行不通的。关于如何完成此任务的任何建议?
var profile = new {
Age = GetAgeFromSomewhere(id),
IsLegal = (Age>18)
};
对于动态对象匿名类型对象初始化器,这样的事情是否可能?
【问题讨论】:
-
事先将
GetAgeFromSomewhere的结果赋值给单独语句中的变量。 -
这个问题也不直接与动态类型相关,而是与初始化器相关。
-
@CSharpie 使用静态声明的类型,OP 可以将
IsLegal设为派生属性:public bool IsLegal { get { return Age > 18; } } -
意识到要为值创建一个变量,但我想避免在实际场景中创建十几个变量。还有其他想法吗?
-
你的“真实场景”是什么?您可能想在您的问题中解释何时/为什么需要这个
标签: c# properties object-initializers