Home >Backend Development >C++ >Casting in C#: When to Use 'as' vs. Explicit Casting?
In object -oriented programming, object type conversion is common operation. CLR provides two main conversion methods: 'as' keywords and explicit conversion.
'as' keyword
'as' keyword execution type conversion, successor returns the conversion object, and fails to return NULL. It is usually used to convert objects to specific subclasses or interface implementations. For example:
If 'Obj' is an instance of 'myclass', the 'as' component will return a reference to the 'MyClass' object; otherwise returns NULL.
<code class="language-csharp">object obj = new MyClass(); MyClass cls = obj as MyClass;</code>Differential conversion
Express the use of grammar. Convert the object to a specified type, and the conversion is invalid and throw an exception. For example:
Expressive conversion may cause runtime errors when the conversion object type does not match. (cast-type)
<code class="language-csharp">object obj = new MyClass(); MyClass cls = (MyClass)obj;</code>
In general, 'as' keywords are safer because it returns NULL when the conversion fails to avoid runtime errors. Only when the conversion is successful and the performance is important, the conversion should be used.
Semantic differences
The main difference between the two methods is: 'as' keyword check object type, and the conversion is invalid and returns NULL; while the explicit conversion forced attempts to be converted, failure is thrown abnormal. This difference is important when the object type is uncertain (such as using reflection).Recommended method
It is usually recommended to use 'as' keywords instead of explicit conversion. It is safer and the performance loss is not significant. It is especially useful when the object type is pre -unknown or dynamic changes.
The above is the detailed content of Casting in C#: When to Use 'as' vs. Explicit Casting?. For more information, please follow other related articles on the PHP Chinese website!