這可能是一個愚蠢的問題,我並不真的需要這個任何東西,但我只是好奇......投泛型類型的實例爲「模板」的實例
最好的辦法是用描述例如所以這裏是:
using System;
namespace GenericExample
{
public interface IFoo { }
public interface IFoo2 { }
public class Foo1: IFoo , IFoo2 { }
public class Foo2 : IFoo, IFoo2 { }
public class MyGeneric<T> where T : IFoo , IFoo2, new() { }
internal class Program
{
public static void Main(string[] args)
{
MyGeneric<Foo1> obj1 = new MyGeneric<Foo1>();
MyMethod(obj1);//I can treat obj1 as MyGeneric<T> in MyMethod
MyGeneric<Foo2> obj2 = new MyGeneric<Foo2>();
//But can I use is as MyGeneric<T> in this method???
//MyGeneric<?> obj3 = null;
//obj3 = (MyGeneric<?>)obj1;
//obj3 = (MyGeneric<?>)obj2;
Console.ReadLine();
}
public static void MyMethod<T>(MyGeneric<T> arg) where T : IFoo, IFoo2, new()
{
}
}
}
我不認爲這是可能的主要
治療OBJ1作爲MyGeneric < T>,但同時也覺得很奇怪,因爲我可以把它作爲一個MyGeneric < T>參數
什麼意思是「把obj1當作MyGeneric < T>」,你想在'Main'中用'obj1'做什麼? –
@YacoubMassad我更新了示例.Imagine T實現了一個接口(或更多)。我可以創建一個變量MyGeneric <"T">並指向任何具體實現?再次,我不需要這個,我很好奇,如果有我的方式來編譯 –