1. ホーム
  2. c#

[解決済み] 数値型にマッチする一般的な制約 [重複].

2023-04-17 17:26:41

質問

私は、私が作っている流暢なテストフレームワークで使用される数値型の拡張メソッドを書こうとしています。基本的に、私はこれをしたいです。

public static ShouldBeGreaterThan<T>(this T actual, T expected, string message)
    where T : int || T: double || etc...

ただ where T : struct にもマッチしてしまうので、そうではありません。 stringbool そして、おそらく私が忘れている何か他のものです。(特に >< 演算子で比較できるようになります。もしこれが日付のマッチングも意味するのであれば、それは本当に重要ではありません - 拡張機能はまだ私が期待することを行います)。

どのように解決するのですか?

この場合、ジェネリックを制限するために IComparable インタフェースに制限したい場合、このインタフェースは CompareTo メソッドにアクセスできるようになります。このインターフェイスを使うと、質問に答えるために ShouldBeGreaterThan .

数値型はそのインターフェイスを実装しており、文字列でも動作するという事実はそれほど気にする必要はないでしょう。