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?

War es hilfreich?

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 ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top