ジェネリック型コンバーター関数をメソッドに送信したいのですが、その方法がわかりません。
私が達成したいことを説明する無効な構文を次に示します。問題は、関数と一緒にジェネリック型を指定する方法がわからないことです。
public void SomeUtility(Func<T><object,T> converter)
{
var myType = converter<MyType>("foo");
}
編集(ローレンスとのコメントでの私の議論も参照してください):「ジェネリック型コンバーター」とは、強い型 <T> (オブジェクトではない)に変換できるコンバーターを渡したいという意味だったので、私の次の行メソッドは次のようになります。
var myOtherType = converter<MyOtherType>("foo");
パラメータとして渡したいデリゲートは、次のようになります。
private delegate TOutput myConverterDelegate<TOutput>(object objectToConvert);
これは、構文/C# の探索に近いものです。物事を成し遂げるために、おそらく代わりにインターフェイスを使用しますが、これが func/delegate で達成できることを願っています。