我有一个变量,其值在运行时填充。我想检查这个值是否在两个不同的数据类型值之间(比如说最低和最高),或者不使用扩展方法。在两个具有相同基类的数据类型之间创建扩展方法检查值
这两个值(最低和最高)可以是相同的数据类型(没问题)。然后,它像
public static bool Between<T>(this T actual, T lower, T upper)
where T : IComparable<T>
{
return actual.CompareTo(lower) >= 0 && actual.CompareTo(upper) <= 0;
}
礼貌我刚才问的问题How to create a Between Extension Method
但是,如果他们有不同的数据类型,但相同的基类的东西。
说
我想看看像
byte a = 2; //here static but is can be changed at runtime
if(a.Between(0,8.0))
DoSomething();
else
DoNothing();
在上面的代码中我检查一个int值和双值之间的字节值。在这种情况下如何做。我想创建一个像
public static bool Between<T1, T2, T3>(this T1 actual, T2 lowest, T3 highest)
where T1: ????
where T2: ????
where T3: ????
{
What code to write here????
}
扩展方法对于上面的代码中我的EM应该返回true
在你的例子中写出* compilable *代码,当'T1'是'byte','T2'是'int'时,等等。看看这些代码,并考虑你有什么希望使其具有通用性。 – AakashM
扩展方法是否应该拼写为'IsBetween'?听起来更好。 –
@FelixK:它的扩展方法里面的代码在我的大脑里听起来更好。 –