Events
Mar 17, 9 PM - Mar 21, 10 AM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
You have tried to convert a type to another type that may not be able to contain the value, such as a Long
to an Integer
, while the type checking switch (Option Strict Statement) is set to On
.
This type of conversion is called a narrowing conversion, and it is possible for it to fail at run time. For this reason, Option Strict On
disallows implicit narrowing conversions.
Error ID: BC30512
Determine whether a conversion of any type exists from <type1>
to <type2>
. If both are Visual Basic elementary types, or if both are instances of classes, you can usually make this determination by consulting the table in Widening and Narrowing Conversions.
If only a narrowing conversion exists from <type1>
to <type2>
, you should use explicit casting. The CType Function and DirectCast Operator keywords throw a run-time exception if the conversion fails. The TryCast Operator keyword applies only to reference types and returns Nothing if the conversion fails.
If a narrowing conversion exists and your program can tolerate a run-time failure, or you are confident that a run-time failure is not possible, you can specify Option Strict Off
at the beginning of your source code. But you should still enclose the conversion in a Try...Catch...Finally Statement block to avoid unexpected results or early termination of your program.
If no conversion exists from <type1>
to <type2>
, you must re-evaluate your program logic. You might be able to write code that can assign values to <type2>
corresponding to anticipated values of <type1>
.
If no conversion exists from <type1>
to <type2>
and one of the types is a class or structure you have defined, you might be able to define a conversion operator from that type to or from the other type. For more information, see How to: Define a Conversion Operator.
In all cases and as a general guideline, you should avoid using narrowing conversions unless you can trap failures in a Catch
block and deal with them effectively.
.NET feedback
.NET is an open source project. Select a link to provide feedback:
Events
Mar 17, 9 PM - Mar 21, 10 AM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register now