有没有办法声明一个泛型函数,泛型类型是type1or type2?
example:
public void Foo<T>(T number)
{
}
我可以将 T 限制为 int 或 long
对于 ReferenceType 对象,您可以执行以下操作
public void DoIt<T>(T someParameter) where T : IMyType
{
}
...
public interface IMyType
{
}
public class Type1 : IMyType
{
}
public class Type2 : IMyType
{
}
对于您的情况,使用 long 作为参数无论如何都会限制对 long 和 int 的使用。
public void DoIt(long someParameter)
{
}
要限制任何值类型(例如:int、double、short、decimal),您可以使用:
public void DoIt<T>(T someParameter) where T : struct
{
}
更多信息可以查看官方文档here https://msdn.microsoft.com/en-us/library/d5x73970.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)