Valore del risultato nell'attuazione metodi vuoti tramite DynamicObject
-
19-09-2019 - |
Domanda
Sto guardando gli esempi per escludere TryInvokeMember
su DynamicObject
per implementare metodo dinamico vincolante. La firma è la seguente
public virtual bool TryInvokeMember(
InvokeMemberBinder binder,
Object[] args,
out Object result
)
Ovviamente result
viene utilizzato per passare il risultato al chiamante.
Poiché non v'è alcun sovraccarico per TryInvokeMember
senza result
fuori parametro, assumo questo metodo deve gestire metodi vuoti pure. In questo caso ci sono delle linee guida per ciò che result
dovrebbe essere impostato?
L'implementazione di default su set DynamicObject
result
a null, e che sarebbe la mia scelta di default pure, ma non sono stato in grado di trovare alcuna menzione di questo negli esempi. Ci sono delle linee guida per questo? Ha anche importa quale sia il risultato è?
Soluzione
Sì, basta usare nulla in questo caso.
Ci sono state alcune domande simili qui prima: come faccio esprimo una chiamata al metodo vuoto come il risultato di DynamicMetaObject.BindInvokeMember? Questo è di circa IDynamicMetaObjectProvider, ma DynamicObject è solo una delle sue implementazioni. Poco, DLR restituirà sempre qualcosa, non permette di tornare vuoto.
Vedrò cosa posso fare per documentazione MSDN. Posso aggiungere una nota su questo al DynamicObject.TryInvokeMember .
Altri suggerimenti
Credo che non importa, dal momento che il risultato sarà ignorato in ogni caso ...