Ich habe folgenden Code:Bestimmen Rückgabetyp von Lambda-Expression
public class ScriptRuntime {
public R Execute<T, R>(Expression<Func<T, R>> expression) {
// ... do something ...
return default(R);
}
}
Ich nenne es wie
var loc = AddIn.Context.ScriptRuntime.Execute<IAgentBaseScript, Vector3?>(x => x.GetInitialLocation(this));
ich mich bin zu fragen, ob es wäre eine Möglichkeit das Definieren der entfernen returntype R
und stattdessen sollte es nur aus dem Ausdruck bekommen?
Zum Beispiel, wenn ich
var loc = AddIn.Context.ScriptRuntime.Execute<IAgentBaseScript>(x => x.GetInitialLocation(this));
und weil die Schnittstelle nennen IAgentBaseScript
wie
public interface IAgentBaseScript {
Place GetInitialPlace(AgentBase agent);
Vector3? GetInitialLocation(AgentBase agent);
}
es sollte theoretisch klar sein, dass der Rückgabetyp ist Vector3
aussieht, weil es immer der gleiche wie der Ausdruck ist .