这可能是一个愚蠢的问题,我并不真的需要这个任何东西,但我只是好奇......投泛型类型的实例为“模板”的实例
最好的办法是用描述例如所以这里是:
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">并指向任何具体实现?再次,我不需要这个,我很好奇,如果有我的方式来编译 –