2013-07-28 90 views
3

這裏是我的代碼:如何在申報時間實例與其父實例的屬性

var Operations = new List<Operation> 
{ 
    new Operation 
    { 
     Date = DateTime.Now, 
     OperationId = 0, 
     OperationType = OperationType.Entry, 
     OperationVehicles = new List<OperationVehicle> 
     { 
      new OperationVehicle { Vehicle = vehicle}, 
     } 
    }, 
    new Operation 
    { 
     Date = DateTime.Now.AddDays(2), 
     OperationId = 1, 
     OperationType = OperationType.Exit, 
     OperationVehicles = new List<OperationVehicle> 
     { 
      new OperationVehicle { Vehicle = vehicle, /* Operation = ???*/}, 
     } 
    } 
}; 

OperationVehicle類有Operation型的,我希望在此階段與其父操作的實例進行實例化一個虛擬的公共財產。那麼,我認爲在這個時候行動可能還沒有建立。有沒有辦法在C#中做到這一點,或我必須做經典作曲?

回答

1

來自第7.6.10.2節中的C# Language spec(強調我的)。

對象初始包括由{和}記號包圍並且由逗號分隔的成員初始化序列, 的。每個成員 初始值設定項必須爲初始化的對象 命名可訪問的字段或屬性,後跟等號和表達式或對象初始值設定項或集合初始值設定項。對象初始值設定項爲 相同的字段或屬性包含多個成員初始值設定項是錯誤的。 對象 不可能引用它正在初始化的新創建的對象。

如果我正確理解你的問題那麼它不可能指的是新對象的對象初始化中,所以它不是可以做到你想要什麼作爲vehicle是不是在這一點上進行訪問。

+0

你完全明白我的問題。謝謝! – HichemSeeSharp