我想要一个异类查找辅助函数用于异构集合:它应该返回一个结构或类,如果找不到该项,则返回null.下面是一个使用普通集合查找的示例,但它可能是数据库调用或其他任何内容.
有没有办法通过单一方法签名实现这一目标?
public T GetClass<T>(string key) where T : class
{
object o;
if (Contents.TryGetValue(key, out o))
{
return o as T;
}
return null;
}
public T? GetStruct<T>(string key) where T : struct
{
object o;
if (Contents.TryGetValue(key, out o))
{
if (o is T)
{
return (T?) o;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过的:
(Default) T不是一个选项,因为0是一个有效的int值.<int ?>类型,但如上所述,Nullable<T>不是引用类型.有没有办法表明我要返回一个盒装的int?