我有一个泛型类,如下所示:
public class Test<T> {
/*
Some Properties and Fields
*/
}
现在我在Test {T}类中需要一个公共属性SubTest {T},其数据类型为Test {T}
public class Test<T> {
/*
Some Properties and Fields
*/
public Test<T> SubTest { get; set; }
}
T和U的数据类型不同,SubTest可以为null。 这可能在C#中吗?
更新 或者喜欢这个?
public class Test {
/*
Some Properties and Fields
*/
public Type ElementType { get; private set; }
public Test SubTest { get; set; }
public Test(Type elementType) {
ElementType = elementType;
}
}
答案 0 :(得分:2)
它没有定义所以不能像它那样使用。您需要在类中创建type参数,或使用特定类型,例如public class Test<T, U> {
/*
Some Properties and Fields
*/
public Test<T,U> SubTest { get; set; }
}
:
{{1}}
答案 1 :(得分:0)
你的问题有点不一致:
现在,我需要使用数据类型在测试{ T }类中使用公共属性子测试{ T } 测试{的Ť强>}
但是你的例子不同了,现在已经添加了U.
public class Test<T>
{
public Test<U> SubTest { get; set; }
}
所以按原样回答你的问题,用T代替U:
public class Test<T>
{
public Test<T> SubTest { get; set; }
}
我认为你要做的是创建一个通用的“测试”对象,然后有多个实现(使用不同的类型)。我会使用接口,但它与类的概念相同。
public interface ITest
{
// general test stuff
}
// Type-specific stuff
public interface ITesty<T> : ITest
{
public ITest SubTest { get; set; } // a sub-test of any type
}