gpt4 book ai didi

c# - 使用类型 T 的成员创建类的实例,但不指定 T 类型

转载 作者:太空宇宙 更新时间:2023-11-03 19:41:59 25 4
gpt4 key购买 nike

我有一个这样结构的类:

public class ClassName<T>
{
public int Id {get;set;}
public List<T> ObjectList { get; set; }
}

ClassName 的集合位于ParentClass

public ParentClass
{
public List<ClassName<T>> Property {Get;set;}
//Other properties...
}

要创建此类的实例,我将执行以下操作:

var item = new ClassName<string>();

是否可以在不指定 T 类型的情况下创建此类的实例?

我试过了

var item = new ClassName<null>();
var item = new ClassName();

但显然这些都行不通....

最佳答案

Is it possible to create an instance of this class without specifying the type of T ?

简而言之:不。

关于你为什么要这样做的评论:

Because not all instances of the class require this variable

我建议分割类。

public class ClassNameBase
{
public int Id {get;set;}
}

public class ClassName<T> : ClassNameBase
{
public List<T> ObjectList { get; set; }
}

通过这种方式,您可以创建需要特定类型列表的对象。由于继承,它们还将具有基类提供的所有其他属性。

编辑:

如果您想混合使用和不使用 ObjectList 的对象的不同情况,您可以创建一个基本类型的集合:

public ParentClass
{
public List<ClassNameBase> Property {Get;set;}
//Other properties...
}

现在所有不同的兄弟都将很好地放入同一个列表 Property

如果您想访问其中一个元素中的 ObjectList,您需要强制转换它们:

ClassName<int> temp = Property[0] as ClassName<int>;

if(temp != null)
{
temp.ObjectList.Where(....
}

关于c# - 使用类型 T 的成员创建类的实例,但不指定 T 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52220425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com