Visual Basic Family Compared to ViviFire

ViviFire has many of the same features as Visual Basic and VB.NET. This appendix tries to show what is different.

Letter case

ViviFire and VB ignore the letter case of keywords. For example, END and end are the same keyword in each language.

But, ViviFire is different from VB with declared elements. If ViviFire finds two names with different letter cases, they refer to different elements. For example, ABC and abc refer to two different declared elements.

Equivalent features

FeatureSharedDifferent
Arithmetic operators +, -, *, /, \, Mod, ^
Assignment operators &=, +=, -=, *=, /=, \= Does not have ^=. <<= → SHL=, >>= → SHR=
Call Almost the same
Comparison Operators Almost the same
Const Almost the same
Do…Loop Almost the same
Exit Almost the same Does not have Exit Select.
For Almost the same Next → End For
If…Else Almost the same ElseIf → Else If
Logical and bitwise operators And, Or, Xor AndAlso → And Then, OrElse → Or Else
ReDim Almost the same Does not have Preserve.
Return Almost the same
Select…Case Almost the same Is is not optional.
Try…Catch…Finally Almost the same Does not have Catch…When
While Almost the same Wend → End While

Easy translations

The table that follows shows elements of VB that have a different name in ViviFire.

In VBIn ViviFire
<< and >> SHL and SHR
AddressOf Sub or Function
Inherits Is, Extends, or Inherits
Is and IsNot Is
Me and MyBase Self and Base
MustInherit and MustOverride @Abstract
Overridable and Overrides @Open and @Override
RaiseEvent Raise Event
ReadOnly and WriteOnly @ReadOnly and @WriteOnly
Shared and Static @Shared
Throw Raise

Data types

In VBIn ViviFireIn VBIn ViviFire
BooleanBooleanStringString
SByteInt8ByteUInt8
ShortInt16UShortUInt16
IntegerInt32UIntegerUInt32
LongInt64ULongUInt64
DateDateTimeDecimalFixed128
SingleReal32DoubleReal64

ViviFire also has Int128, UInt128, Fixed64, and Real128.

Features almost the same

In VBIn ViviFire
DelegateEvent
HandlesHandles (Sub)
If()Conditional Operator
Implements (Class)Does (Class)
InterfaceTrait
ModuleProgram and Library
New (operator)New (statement)
Nothing#Null
StructureStruct
TypeOf…IsIs

Features not available