2011-01-06 56 views
0

使用C#,是否有方法從類A中複製已設置的屬性(因此如果我沒有在類A中設置某些屬性,我不想將它複製到類B)?將屬性從類A複製到類B

例如:

class A 
{public string Name {get;set;} 
public string Age {get;set;} 
} 

class B 
{public string Name {get;set;} 
public string Age {get;set;} 
} 


A a = new A(){name ="bob"} 

現在我有B b = new B(){Age = 30}; 我需要複製A到B這樣B的名稱被設置和時代保持不變。由於

+0

你是說一個值爲null的屬性不會被複制?如果它是一個整數屬性呢?你如何區分默認值0和被設置爲零的屬性? – Josh 2011-01-06 04:20:58

+0

是的,這是一個棘手的部分,我想知道我們是否能夠複製任何我們非常喜歡設置的東西。 – user282807 2011-01-06 04:27:41

+0

如果類型不兼容會發生什麼?例如A有一個屬性B沒有。或者A的屬性與B中的同名命名屬性不兼容。 – 2011-01-06 04:31:38

回答

0

嗯,你可以這樣做:

if (b.Name == null) b.Name = a.Name; 
if (b.Age == null) b.Age = a.Age; 

但這不會爲值類型的工作(如Int32)。對於那些,如果你控制類型的定義,你可以使用Nullable<T>

相關問題