我有这个扩展方法:
public static bool In<T>(this T source, params T[] list)
{
return list.Contains(source);
}
现在我需要将上述方法用于ushort
. 当我尝试
ushort p = 3;
if (p.In(1, 2, 3, 4, 5))
return;
第一行投到3
一口井里ushort
。但是当3
作为参数传递时,我得到了错误
'ushort' 不包含 'In' 的定义,并且最佳扩展方法重载 'Extensions.In(T, params T[])' 有一些无效参数。
但这有效:
ushort p = 3;
if (Extensions.In(p, 1, 2, 3, 4, 5))
return;
这很奇怪。
为什么它适用于第二个示例,而不适用于第一个示例?
有什么好的选择可以在这里帮助我?由于没有文字,
short
或者ushort
我找不到比手动转换每个整数更简单的替代方法,如下所示:ushort p = 3; if (p.In((ushort)1, (ushort)2, (ushort)3, (ushort)4, (ushort)5)) return;