gpt4 book ai didi

c# - 检测泛型中的泛型类型

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

我有一个方法可以接受许多不同类型的对象进行存储:

public void Store<T>(T item)
{
// works fine
if (item is Foo)
{
// ...
}
// works fine
else if (item is Observation<ImageSignal>)
{
// ...
}

// isn't detected
else if (item is Observation<Signal<ISpectrum>>)
{
// ...
}

else
{
// Observation<Signal<ISpectrum>> always hits this.
throw new NotSupportedException();
}
}

谁能告诉我如何检测到这个?

编辑: 我实际上传入了一个包装该对象的对象。埃里克是对的。问题解决了。不过,感谢您的快速回复。

最佳答案

在这种情况下,重载 Store 函数不是更好吗?遵循逻辑会容易得多。

public void Store(Foo item)
{
}

public void Store(Observation<ImageSignal> item)
{
}

public void Store(Observation<Signal<ISpectrum>> item)
{
}

关于c# - 检测泛型中的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883230/

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