Before discussing about the differences, let's know what is meant by Early and
The name itself describes that compiler knows about what kind of object it is,
what are all the methods and properties it contains. As soon as you declared the
object, .NET Intellisense will populate its methods and properties on click of
the dot button.
- ListBox lstItems;
In the above examples, if we type the cboItem and place a dot followed by, it
will automatically populate all the methods, events and properties of a combo
box, because compiler already know it's an combobox.
The name itself describes that compiler does not know what kind of object it is,
what are all the methods and properties it contains. You have to declare it as
an object, later you need get the type of the object, methods that are stored in
it. Everything will be known at the run time.
- objItems = CreateObject("DLL or Assembly name");
Here during the compile time, type of objItems is not determined. We are
creating an object of a dll and assigning it to the objItems, so everything is
determined at the run time.
Early Binding vs. Late Binding
Now coming into the pictureâ€¦
Application will run faster in Early binding, since no boxing or unboxing are
- Easier to write the code in Early binding, since the intellisense will be
- Minimal Errors in Early binding, since the syntax is checked during the
compile time itself.
- Late binding would support in all kind of versions, since everything is
decided at the run time.
- Minimal Impact of code in future enhancements, if Late Binding is used.
- Performance will be code in early binding.
Both have merits and demerits, it's the developer decision to choose the
appropriate binding based on the scenario.