免責事項:この質問の単体テスト関連の情報は実際には関係ありません。これに慣れていない場合は「問題」にスキップできますが、コンテキストを設定するのに役立ちます.
単体テストが必要なクラスがあります。次のようになります。
public class NumberParser {
    public static void CheckByteRange(string str){...}
    [...]
    public static void CheckFloatRange(string str){...}
    [...]
}
NUnit のパラメーター化された単体テストを使用して、これらすべてのメソッドをテストしたいと考えています。テスト方法は次のとおりです。
    [TestCaseSource("CheckRange_Overflow_Inputs")]
    public void CheckRange_Overflow(string value, Action<string> method)
    {
        Assert.Throws<Exception>(() => method(value));
    }
テストTestCaseSourceAttributeでは、引数のセットのリストを含むフィールドをテスト メソッドに指定するために使用します。
ここで、NUnit は、それ自体が要素を含む、CheckRange_Overflow_Inputsタイプ のという名前のフィールドを予期します。各要素には、テスト メソッドへの引数の値が含まれます。object[]object[]
問題:
理想的には、次のようにフィールドを書きたいと思います。
    private static readonly object[] CheckRange_Overflow_Inputs
        = new object[]
              {
                  new object[]{byte.MaxValue,  NumberParser.CheckByteRange },
                  [...]
                  new object[]{float.MaxValue, NumberParser.CheckFloatRange },
                  [...]
              };
しかし、コンパイラは、メソッド グループをオブジェクトにキャストできないと文句を言います。
それは理にかなっています-NumberParser.CheckByteRangeあいまいになる可能性があります。たとえば、過負荷になる可能性があります。
しかし、どうすればコンパイラーが呼び出したメソッドを (オブジェクトとして) 保存できるようにすることができますかNumberParser.CheckByteRangestringvoid?
私が試したこと(そして失敗した成功):
 [...]
 new object[]{byte.MaxValue, (Action<string>)NumberParser.CheckByteRange },
 [...]