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
| Feature | Shared | Different |
|---|---|---|
| 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 VB | In 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 VB | In ViviFire | In VB | In ViviFire |
|---|---|---|---|
Boolean | Boolean | String | String |
SByte | Int8 | Byte | UInt8 |
Short | Int16 | UShort | UInt16 |
Integer | Int32 | UInteger | UInt32 |
Long | Int64 | ULong | UInt64 |
Date | DateTime | Decimal | Fixed128 |
Single | Real32 | Double | Real64 |
ViviFire also has Int128, UInt128, Fixed64, and Real128.
Features almost the same
| In VB | In ViviFire |
|---|---|
Delegate | Event |
Handles | Handles (Sub) |
If() | Conditional Operator |
Implements (Class) | Does (Class) |
Interface | Trait |
Module | Program and Library |
New (operator) | New (statement) |
Nothing | #Null |
Structure | Struct |
TypeOf…Is | Is |
Features not available
- Access levels:
Private,Protected,Public, andFriend Custom PropertyGoSubandGoTolabel- Labels and line numbers as targets of
GoSubandGoTo LikeoperatorNotInheritableandNotOverridable, because these are the defaults- Operator overloading
- “Partial” classes and structures
Variantdata type