Generische funktion ohne explizie Typ angabe?
-
Hi ihr,
hab folgenden Code augegraben:
class foo<T> where T : class, new() { public foo() { _obj = new T(); } T _obj = default(T); public TResult CallFunc<TResult>(Func<T, TResult> del) { return del(_obj); } } class bar { public int GetInt() { return 1; } public string GetString() { return "Hallo"; } }
nun kann ich sowas schreiben
foo<bar> footest = new foo<bar>(); var g = footest.CallFunc(it => it.GetInt());
aber WIESO muss ich hier bei "CallFunc" nich explizit den Rückgabe typ des Funktors angeben, er übernimmt irgendwie automatisch den rückgabe typ der funktion die ich aufrufen aus "bar"!!
Kann mir jemand das erkären( is ja ne feine sache, aber wieso funktioniert das?)
-