When is "Or" better to use than "OrElse"?

vb.net

Solution

The only reason to use `Or` is when you want bitwise arithmetic, i.e. you want to manipulate the bits in a number:

Sub SetBit(value As Integer, Bit As Integer)
    value = value Or (1 << Bit)
End Sub

This kind is the only case appropriate for `Or`. In all other cases (i.e. when using Boolean logic), use `OrElse`.

Despite their similar names, `Or` and `OrElse` are semantically quite distinct operations which should not be confused with each other. It just so happens to be that the internal representation of `Boolean`s makes it possible to use bitwise `Or` to achieve a similar (but not the same) effect to `OrElse`. (Old versions of BASIC and VB – before .NET – exploited this relationship by only providing an `Or` operation, no `OrElse`.)

Problem

Is there any situation where `Or` is better to use than `OrElse`? If not, why don't they just "upgrade" the internal code?

Original source