2016-10-26 95 views
1

我事先致歉 - 我是自學的... 是否有一種簡單的方法來設置基類的所有屬性轉換爲繼承相同基類的不同類的相同屬性。例如:使用具有相同基類的不同對象實例設置對象基礎的實例

class Foo : Person 
{ 
} 

class Bar : Person 
{ 
} 

class Person 
{ 
    string FirstName {get; set;} 
    string LastName {get; set;} 
    //hundreds more... 
} 

所以,如果我有:

var x = new Foo() 
{ 
    FirstName = "John", 
    LastName = "Doe", 
    //hundreds more... 
}; 
var y = new Bar(); 

我怎麼能輕易所有這些特性從X到Y的映射,而不必單獨指定每個屬性?

我的想法是這樣的:y.base = x.base;但是這似乎並沒有工作...

+1

您是否在尋找一些OO快捷鍵或功能?或者你只是想複製屬性。後者然後[使用Automapper](http://automapper.org/)。如果前者那麼,不,除了使用反射來獲取和設置屬性。 – Crowcoder

+0

你可能會看看複製構造函數是什麼 – Plutonix

回答

0

我建議創建映射器的方法 例:

public class Person 
    { 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 

     public void Copy(Person person) 
     { 
      this.FirstName = person.FirstName; 
      this.LastName = person.LastName; 
     } 
    } 

而且新實例

var x = new Foo() 
      { 
       FirstName = "John", 
       LastName = "Doe", 
      }; 
      var y = new Bar(); 
      y.Copy(x); 
相關問題