When the target of a member access expression, invocation expression or index expression is of type Object
, the processing of the expression may be deferred until runtime. This deferral is called "late binding," and it allows Object
variables to be used in a "typeless" way, where all binding of members is based on the actual runtime type of the value in the variable. If strict semantics are specified by the compilation environment or Option
Strict
, then late binding causes an error. Note that, unlike the early bound case, invoking or accessing a shared member late bound will cause the invocation target to be evaluated at runtime.