Sto cercando di scrivere un metodo generico che fornisce i parametri e chiama una funzione, come questo:C# tipo metodo di gruppo inferenza
class MyClass {
public int Method(float arg) => 0;
}
TResult Call<T1, TResult>(Func<T1, TResult> func) =>
func(default(T1));
void Main()
{
var m = new MyClass();
var r1 = Call<float, int>(m.Method);
var r2 = Call(m.Method); // CS0411
}
L'ultima linea non riesce a compilare con CS0411. C'è qualche soluzione per ottenere l'inferenza di tipo per lavorare qui?
Caso di utilizzo: utilizzo di AutoFixture per generare parametri di chiamata di funzione.
Non credo sia possibile. – mrahhal
Correlati (?): Http://stackoverflow.com/a/9331879/3225495 –
Non è correlato, nel suo caso i due tipi sono indipendenti e entrambi dati dal metodo handle. C# potrebbe teoricamente inferire completamente gli argomenti generici corretti. Lo standard non lo richiede per motivi di complessità. – Blindy