我尝试为对象初始值设定项中的两个不同属性赋值并失败。
在下面的代码中,我尝试将Expand和Select属性指定为true。 但我得到错误'当前名称选择不存在 上下文
这是我的代码
public class MyClass{
public String Title{get;set;}
public String Key{get;set;}
public bool Expand{get;set;}
public bool Select{get;set;}
public bool Editable{get;set;}
}
new MyClass()
{
Title = "Murali",
Key = "MM",
Expand = Select = true
}
此外,我需要根据这两个属性
指定另一个可编辑的属性像
这样的东西new MyClass()
{
Ediatable=(Select && Expand)
}
我如何做上述逻辑? Object Initializer是否支持它?
答案 0 :(得分:1)
您无法在=
的右侧引用您正在构建的对象的属性,即,您只能分配属性,但不能从属性中读取。
可能的解决方案:
var expandAndSelect = true;
var result = new MyClass
{
Title = "Murali",
Key = "MM",
Expand = expandAndSelect,
Select = expandAndSelect,
};
和
var select = true;
var expand = false;
var result = new MyClass
{
Expand = expand,
Select = select,
Editable = select & expand,
};