1

オブジェクト初期化子の2つの異なるプロパティに値を割り当てようとしましたが、失敗しました。

以下のコードでは、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
  }

また、この2つのプロパティに基づいて編集可能な別のプロパティを割り当てる必要があります

何かのようなもの

new MyClass()
  {
   Ediatable=(Select && Expand)
  }

上記のロジックを実行するにはどうすればよいですか?Object Initializerはそれをサポートしていますか?

4

1 に答える 1

2

の右側で作成しているオブジェクトのプロパティを参照することはできません。=つまり、プロパティに割り当てることはできますが、プロパティから読み取ることはできません。

考えられる解決策:

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 に答える