2015-11-07 156 views
0
DerivedType x = new DerivedType();// I don't know what 

我需要按對象創建對象實例x。不知怎的,這樣的:如何在c中按對象本身獲取對象類型#

BaseType y = Activator.CreateInstance (Type.GetType (x)); 
+0

你爲什麼這樣做?爲什麼你不能使用泛型或工廠模式? – Dai

+0

'Activator.CreateInstance(x.GetType);'Activator.CreateInstance如何返回對象。或'Activator.CreateInstance(x.GetType.BaseType);' –

回答

1

你可以得到基本類型:

Type baseType = x.GetType().GetTypeInfo().BaseType; 

但似乎你做錯事一般。

+0

Kirill Bestemyanov,謝謝你的回覆。可能是我做錯了什麼。我需要動態地創建派生類的實例,但我不知道它是什麼類型。我需要這樣的東西:** BaseClass itemCopy =(itemOfDerivedClass.GetType())Activator.CreateInstance(itemOfDerivedClass.GetType()); **,但編譯器不允許做這種類型的對話。 – thedriveee

+0

你想實現的目標是什麼? –

+0

我想枚舉派生類的屬性,處理它們並使用實體框架將該對象寫入數據庫。 – thedriveee