gpt4 book ai didi

c# - 将泛型类型参数转换为 C# 中的特定类型

转载 作者:可可西里 更新时间:2023-11-01 08:59:10 24 4
gpt4 key购买 nike

如果您需要将泛型类型参数转换为特定类型,我们可以将其转换为一个对象并像下面这样进行转换:

void SomeMethod(T t)
{
SomeClass obj2 = (SomeClass)(object)t;
}

有没有更好的方法来实现这一点,而不是将其强制转换为对象,然后再强制转换为特定类型?

问题:

我有一个接受泛型类型参数的泛型函数,在基于类型检查的函数内部我做了一些如下操作:

    void SomeMethod(T t)
{
if (typeof(T).Equals(typeof(TypeA)))
{
TypeA = (TypeA)(object)t;
//Do some operation
}
else if (typeof(T).Equals(typeof(TypeB)))
{
TypeB = (TypeB)(object)t;
//Do some operation
}
}

最佳答案

您可以使用 Convert.ChangeType

SomeClass obj2 = (SomeClass)Convert.ChangeType(t, typeof(SomeClass));

不过,请记住,如果转换无效,这将引发异常。

关于c# - 将泛型类型参数转换为 C# 中的特定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39244449/

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