我有一个接受许多不同类型的对象进行存储的方法:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么能发现这个?
编辑: 我实际上传递了一个包裹这个对象的对象.埃里克是对的.问题解决了.但是,感谢您的快速反应.
在这种情况下,重载Store函数不是更好吗?遵循逻辑会容易得多.
public void Store(Foo item)
{
}
public void Store(Observation<ImageSignal> item)
{
}
public void Store(Observation<Signal<ISpectrum>> item)
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |