VB.NET Option Strict [On | Off]

Option Strict is a compiler setting in VB.NET that controls the automatic type conversions, known as implicit type conversions, performed by the compiler. When Option Strict is set to On, the compiler enforces stricter rules for type safety, and it disallows certain implicit conversions that can potentially result in data loss or unexpected behavior.

With Option Strict On, the compiler requires explicit casting or conversion functions to be used when converting between different data types. This helps catch potential errors and promotes more precise handling of data types in the code.

Option Strict [On Off]

By default, Option Strict is set to Off in VB.NET, which allows the compiler to perform implicit type conversions. This means that the compiler will automatically convert values from one data type to another if it determines that the conversion is valid and no potential loss of data will occur. While this can be convenient, it can also lead to unintended consequences if not carefully managed.

Setting Option Strict to On provides the following benefits:

  1. Enhanced type safety: Option Strict helps enforce strong typing by requiring explicit type conversions, reducing the risk of type-related errors.
  2. Improved code clarity: Explicitly specifying type conversions makes the code more readable and self-explanatory, as it clearly indicates the intended data type transformations.
  3. Prevention of potential data loss: Option Strict disallows implicit conversions that may result in data loss. It forces developers to explicitly handle any potential loss of precision or truncation of data during type conversions.

From the following example you can understand the use of Option Strict.

VB.NET Source Code
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim longNum As Long Dim intNum As Integer longNum = 12345 intNum = longNum MsgBox(intNum) End Sub End Class

The above program is a normal vb.net program and is in default Option Strict Off . Because its Option Strict Off we can convert the value of Long to an Integer.

Take a look at the following program.

Full Source VB.NET
Option Strict On Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim longNum As Long Dim intNum As Integer longNum = 12345 intNum = longNum MsgBox(intNum) End Sub End Class

When you write this source code the compiler will shows the message.

"Option Strict On disallows implicit conversions from 'Long' to 'Integer'"

The compiler generate error because in the program we put "Option Strict On" and prevent the program from automatic conversion.

Conclusion

By enabling Option Strict and explicitly handling type conversions in the code, you can ensure greater accuracy, prevent potential data loss, and catch type-related errors at compile time, leading to more reliable and maintainable applications.