実行時に値が入力される変数があります。その値が 2 つの異なるデータ型の値 (最低値と最高値など) の間にあるかどうか、または拡張メソッドを使用していないかどうかを確認したいと思います。
これら 2 つの値 (最低値と最高値) は同じデータ型にすることができます (問題ありません)。それからそのような
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;
}
私の以前の質問の厚意により、Between Extension メソッドの作成方法
しかし、データ型が異なっていても基本クラスが同じである場合はどうなるでしょうか。
いう
みたいにチェックしたい
byte a = 2; //here static but is can be changed at runtime
if(a.Between(0,8.0))
DoSomething();
else
DoNothing();
上記のスニペットでは、int 値と double 値の間のバイト値をチェックしています。そのような場合の対処方法。のような拡張メソッドを作成したい
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