

The following example shows a call to an overloaded Sub procedure that causes this error at compile time. You must cast the argument to avoid this error. Note that it does not help to cast the referring object to the underlying interface. Use CType to cast the argument from Object to the type specified by the signature of the overload you want to call. This in turn causes the compiler to ignore the renamed version when it might have been the correct choice to resolve the reference. If the class renames one of the overloaded versions, the compiler does not consider that version to be an overload because its name is different. In these circumstances, the compiler resolves the overload through the implementing class instead of through the underlying interface.

The Object argument forces the compiler to resolve the reference as late-bound. The compiler is attempting to resolve a reference to an overloaded property or procedure, but the reference fails because an argument is of type Object and the referring object has the data type of an interface.
