我正在编写一个函数来比较 IComparable 类型的 2 个值,如果不相等则抛出。基本上,重新制作断言。是的,我知道我正在重新发明轮子。
public static void IsEqual<T>(T Value1, T Value2) where T : IComparable<T>
{
if (0 != Value1.CompareTo(Value2))
{
throw new ApplicationException("Fail");
}
}
工作正常,除了字符串,我希望忽略大小写的选项。“AA”与“AA”
我想在 T 是字符串时专门重写此方法,因此我可以使用 String.Compare 并忽略大小写。拥有另一个参数也很酷,因此用户可以指定是否应忽略字符串(尽管,这对于其他类型(如 int)没有用,因此看起来有点像一个令人困惑/糟糕的设计。我愿意接受这里的建议)。
有没有好的方法来做到这一点?我也愿意更改为与 IComparable 不同的类型,最初认为这是该工作的最佳界面,但现在意识到我可能错了。
where T : IComparable<T>