Wert des Ergebnisses bei der Umsetzung Leere Methoden über Dynamic
-
19-09-2019 - |
Frage
Ich betrachte die Beispiele für zwingende TryInvokeMember
auf DynamicObject
dynamische Methode zu implementieren binden. Die Signatur ist wie folgt
public virtual bool TryInvokeMember(
InvokeMemberBinder binder,
Object[] args,
out Object result
)
Offensichtlich result
wird verwendet, um das Ergebnis zurück an den Aufrufer übergeben.
Da es keine Überlastung für TryInvokeMember
ohne result
out-Parameter, nehme ich diese Methode als auch Leere Methoden behandeln müssen. In diesem Fall ist es Richtlinien für das, was result
gesetzt werden sollte?
Die Standardimplementierung auf DynamicObject
Sätzen result
auf null, und das wäre meine Standard-Wahl als gut, aber ich habe nicht in der Lage gewesen, eine Erwähnung dies in den Beispielen zu finden. Gibt es Richtlinien für das? Ist es auch egal, was das Ergebnis ist?
Lösung
Ja, nur in diesem Fall null verwenden.
Es gab einige ähnliche Fragen hier vor: wie kann ich eine Lücke Methodenaufruf als Ergebnis DynamicMetaObject.BindInvokeMember ausdrücken? Dieser ist über IDynamicMetaObjectProvider, aber Dynamic ist nur eine ihrer Implementierungen. In Kürze wird immer DLR etwas zurückgeben, es nicht erlaubt Leere zurück.
Ich werde sehen, was ich über MSDN-Dokumentation tun. Ich kann eine Notiz dies auf die DynamicObject.TryInvokeMember .
Andere Tipps
Ich denke, es spielt keine Rolle, da das Ergebnis ohnehin ignoriert werden ...