class Foo<T>
{
public T Bar() { /* ... */ }
}
私はバーの名前をType.GetMethod(string)
に渡したいと思います。私はこれをsomeType.GetMethod(nameof(Foo<int>.Bar))
として行うことができますが、int
は完全にここでは任意です。私はそれを省略することができる方法はありますか?悲しいことに、nameof(Foo<>.Bar)
は動作しません。タイプ引数を指定せずにジェネリッククラスのメンバーにnameofを使用
このおもちゃの場合はそれほど大したことではありませんが、複数のタイプのパラメータがあり、特にそれらに制約が付いている場合は、それらすべてをスペルアウトすることができます。
"バーには、その署名にTに関連するものが含まれているとします。"これはまさに私の場合です(これを含む質問を編集しました)。まぁ。 – dlf
この場合、とにかく、私はむしろいくつかの不要な型引数を入力したいと思います。一つのこととして、 '' Bar'の 'T'バージョンと' object'バージョンの両方を持つと、最初に解決するために 'nameof'が導入されたのと同じ名前の変更後バグにコードが脆弱になります。もし私がそれを許容する準備ができていれば、 'GetMethod(" Bar ")'をするだけで簡単になります。人生は続く。 :) – dlf
@dlf合意。私のコメントの内容を後世の答えに移しました。 – 31eee384