[英]C# Initialize Subclass based on Parent object
所以基本上我有這個
public class Ticket{
public TicketNumber {get; set;}
..a bunch more properties...
}
我想使用包含而不是使用包含這樣的子類添加一些屬性。
public class TicketViewModel(Ticket ticket){
//set each property from value of Ticket passed in
this.TicketNumber = ticket.TicketNumber;
...a bunch more lines of code..
//additional VM properties
public SelectList TicketTypes {get; private set;}
}
如何實例化屬性而不必像這樣寫所有行
this.TicketNumber = ticket.TicketNumber;
有某種捷徑嗎? 像子類構造函數中的東西?
this = ticket;
顯然這不起作用但是它們是某種方式所以如果addng /刪除屬性到父類,我不必修改我的子類? 或者其他的東西?
您可以在基類上創建構造函數,然后從繼承者調用它,如下所示:
public class Ticket{
public string TicketNumber {get; set;}
..a bunch more properties...
public Ticket (string ticketNumber, a bunch more values) {
this.TicketNumber = ticketNumber;
// a bunch more setters
}
}
然后在你的繼承類中簡單地做:
public class TicketViewModel : Ticket {
public string SomeOtherProperty { get; set; }
public TicketViewModel(string ticketNumber, ..., string someOtherProperty)
: base(ticketNumber, ....)
{
this.SomeOtherProperty = someOtherProperty;
}
}
對不起,沒有捷徑。
我經常希望有。 我很久以前開始使用COBOL進行編程,它有一個MOVE CORRESPONDING
語句,用於將同名的成員從一個記錄移動到另一個記錄。 從那時起,我就用我所使用的每種語言都希望如此。
您可以使用屬性標記可復制屬性,並反射性地嘗試分配它們。 這不是最好的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.