2013-01-23 31 views
1

我嘗試爲對象初始值設定項中的兩個不同屬性賦值並失敗。如何使用對象初始值設定項將相同的值分配給不同的屬性

在下面的代碼中,我嘗試將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) 
    } 

我怎樣才能做到上述邏輯?對象初始化程序是否支持它?

+0

被提擔心,在所有被注意到。 – Freeman

回答

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, 
}; 
+0

好的。但是我之前在正常的對象構造中就是這樣做的。像MyClass obj = new MyClass(); obj.select = TRUE; obj.edit = obj.select;我不知道爲什麼它不存在於對象初始化程序中:( –

+0

對象初始化程序語法不支持此操作。如果要這樣做,請不要使用對象初始化程序語法。 – dtb

+0

另一個重要的事實是我正在調用另一個collection.Contains (key)來獲得bool的值,在這種情況下,它會再調用2次:(M –

相關問題