Conversions can either be implicit or explicit. Implicit conversions may be done without any special syntax. Explicit conversions, on the other hand, must be done using the cast operators. Attempting to do an explicit conversion on a value without a cast operator produces an error.
The set of implicit conversions depends on the compilation environment and the Option
Strict
statement. If strict semantics are being used, only widening conversions may be done implicitly. If permissive semantics are being used, all widening and narrowing conversions may be done implicitly. String conversions (other than those listed as being widening or narrowing) are always explicit, unless done as a part of a conceatenation operation, in which case they are always implicit.