1

我尝试为对象初始化程序中的两个不同属性分配一个值,但失败了。

在下面的代码中,我尝试将 Expand 和 Select 属性分配为 true。但我收到错误“名称 Select 在当前上下文中不存在

这是我的代码

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 是否支持它?

4

1 回答 1

2

您不能在 a 的右侧引用您正在构建的对象的属性=,即,您只能分配给属性,但不能从中读取。

可能的解决方案:

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,
};
于 2013-01-23T12:46:38.447 回答