gpt4 book ai didi

c# - 检查通用类型

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

我在检查泛型类型时遇到了一点问题。

假设您有一个这样的列表:

public class List<T>
{

}

在那里你想检查 T 是什么类型,所以你这样做:

private void CheckType()
{
if (typeof(T) == typeof(CustomItem))
{

}
}

现在我面临着具有通用接口(interface)的类的问题,我想检查接口(interface)是否为泛型,例如:

public interface ICustomItem
{

}

public class CustomItemA : ICustomItem
{

}

public class CustomItemB : ICustomItem
{

}

现在我希望对两个类和接口(interface)都进行类型检查:

private void CheckType()
{
if (typeof(T) == typeof(ICustomItem))
{

}
}

这显然失败了,因为类型不是 ICustomItem,而是 CustomItemA 或 CustomItemB。已经找到了获取接口(interface)的方法,但我认为这不是正确的方法:

private void CheckType()
{
if (typeof(T).GetInterface("ICustomItem") != null)
{

}
}

希望你能帮帮我。

Ps.: 不,我不想创建 T 的实例,只是使用 is 运算符。

最佳答案

我怀疑您正在寻找 Type.IsAssignableFrom :

if (typeof(ICustomItem).IsAssignableFrom(typeof(T)))

关于c# - 检查通用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189696/

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