3.14. Determining Whether to Use theCast Operator, the as Operator, or theis Operator
Problem
You need
to determine which operator is best in your situation the
cast—(
type
)--
operator,
the as
operator, or the is
operator.
Solution
Use the information provided in the Discussion section to determine which operator is best to use.
Discussion
The cast operator should be used when:
It is acceptable for the
InvalidCastException
to be thrown. To prevent this exception from being thrown, consider using either theas
oris
operators.You are casting a reference type to a reference type.
You are casting a value type to a value type.
You are performing a boxing or unboxing conversion.
You are invoking a user-defined conversion. The
is
andas
operators cannot handle this type of cast.
The as
operator should
be used when:
It is not acceptable for the
InvalidCastException
to be thrown. Theas
operator will instead return anull
if the cast cannot be performed.You are casting a reference type to a reference type.
You are not casting a value type to a value type. The cast operator must be used in this case.
You are performing a boxing conversion.
You are not performing an unboxing conversion. The cast operator must be used in this case.
You are not invoking a user defined conversion. The cast operator must be used in this case.
The is
operator should
be used when:
You need a fast method of determining whether a cast can be performed before the actual cast is attempted.
You do not need to actually cast a ...
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.