有没有办法通过实例化来分配T,如下面的“假设”示例所示:
MyObject DummyObject = new MyObject();
DummyObject.MyNestedObject = new MySecondObject<string>()
public class MyObject //**Normally is specified as MyObject<T>**
{
public MySecondObject<T> MyNestedObject { get; set; }
}
我想在MySecondObject的实例化上定义T.我不想在MyObject中定义它。
答案 0 :(得分:2)
不,您必须在班级中声明T
。否则T
将不存在于该上下文中。
public class MyObject<T>
另一种方法是创建一个接口,在MySecondObject
泛型类中实现它。然后将属性类型设置为接口而不是MySecondObject<T>
interface IMyInterface
{
}
class MySecondObject<T> : IMyInterface
{
}
public class MyObject
{
public IMyInterface MyNestedObject { get; set; }
}