我有一個變量,其值在運行時填充。我想檢查這個值是否在兩個不同的數據類型值之間(比如說最低和最高),或者不使用擴展方法。在兩個具有相同基類的數據類型之間創建擴展方法檢查值
這兩個值(最低和最高)可以是相同的數據類型(沒問題)。然後,它像
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:它的擴展方法裏面的代碼在我的大腦裏聽起來更好。 –