我需要從不知道類型的對象調用DeepClone()方法。如何轉換爲未知類型,需要轉換爲GenericType,但T未知
object x = GetObject();
var x2 = x as IDeepCloneable<??????>;//What can I do here???
var clone = x2.DeepClone();
public interface IDeepCloneable<T>
{
T DeepClone();
}
我試圖創建一個新的「基地」界面,並添加「:IDeepCloneable」的泛型類。
public interface IDeepCloneable
{
object DeepClone();
}
但在這種情況下,我需要改變)在T DeepClone派生接口的方法(;到新的T DeepClone();.其結果是,所有的類已經實現IDeepCloneable < T>將無法編譯..
如果你是NET 4.0,你可以使用'dynamic'來代替 – Mgetz
@Mgetz不是真的... – Servy
@Servy我已經完成了它...也可以使用[Type.MakeGenericType](http://msdn.microsoft.com /en-us/library/system.type.makegenerictype.aspx)在這裏...它可以讓你做一個專業化的生成ic在運行時並將其分配給動態。 – Mgetz