VB.NET Language in a Nutshell
| DirectCast Function |
Named Arguments
No
Syntax
DirectCast( expression, typename )
- expression (required; any)
-
The data item to be converted
- typename (required; Keyword)
-
The data type, object type, structure, or interface to which expression is to be converted
Return Value
expression cast as a typename interface or object
Description
Converts an expression to its runtime data type, if possible; otherwise , returns an error.
Rules at a Glance
-
expression must be a reference type, typically a variable of type Object..
-
typename can be any data type (such as Boolean, Byte, Decimal, Long, Short, String, etc.), structure type, object type, or interface.
-
If the function fails, an InvalidCastException exception occurs.
Programming Tips and Gotchas
-
In contrast to the CType function, DirectCast converts a reference type (i.e., an object) to its runtime type. For instance,
Option Strict On Imports System Public Module modMain Public Sub Main Dim oVal As Object = "a"c Dim chVal As Char = DirectCast(oVal, Char) Console.WriteLine(chVal) End Sub End Module
-
DirectCast can also be used to convert an object of a derived type to its base type. For example:
Option Strict On Imports System Public Class Person ' Implementation of Person End Class Public Class Worker Inherits Person ' Implementation of Worker End Class Public Module modMain Public Sub Main ' Conversion of a derived to a base type Dim oWorker As New Worker() Dim oPerson As Person = oWorker Dim oPerson As Person = DirectCast(oWorker, Person) End Sub End Module
-
Like most of the conversion functions, DirectCast is not actually a function in the Microsoft.VisualBasic namespace. Instead, it is similar to a Visual C++ macro; the compiler translates the function call into inline code.
VB .NET/VB 6 Differences
The DirectCast function is new to VB .NET.
See Also
CType Function