X hits on this document

1018 views

0 shares

0 downloads

0 comments

114 / 396

Chapter ‎18   Unsafe code

For a conversion from decimal to float or double, the decimal value is rounded to the nearest double or float value. While this conversion may lose precision, it never causes an exception to be thrown.

6.2.2 Explicit enumeration conversions

The explicit enumeration conversions are:

From sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, or decimal to any enum-type.

From any enum-type to sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, or decimal.

From any enum-type to any other enum-type.

An explicit enumeration conversion between two types is processed by treating any participating enum-type as the underlying type of that enum-type, and then performing an implicit or explicit numeric conversion between the resulting types. For example, given an enum-type E with and underlying type of int, a conversion from E to byte is processed as an explicit numeric conversion (§‎6.2.1) from int to byte, and a conversion from byte to E is processed as an implicit numeric conversion (§‎6.1.2) from byte to int.

6.2.3 Explicit reference conversions

The explicit reference conversions are:

From object to any other reference-type.

From any class-type S to any class-type T, provided S is a base class of T.

From any class-type S to any interface-type T, provided S is not sealed and provided S does not implement T.

From any interface-type S to any class-type T, provided T is not sealed or provided T implements S.

From any interface-type S to any interface-type T, provided S is not derived from T.

From an array-type S with an element type SE to an array-type T with an element type TE, provided all of the following are true:

S and T differ only in element type. In other words, S and T have the same number of dimensions.

Both SE and TE are reference-types.

An explicit reference conversion exists from SE to TE.

From System.Array and the interfaces it implements to any array-type.

From System.Delegate and the interfaces it implements to any delegate-type.

The explicit reference conversions are those conversions between reference-types that require run-time checks to ensure they are correct.

For an explicit reference conversion to succeed at run-time, the value of the source operand must be null, or the actual type of the object referenced by the source operand must be a type that can be converted to the destination type by an implicit reference conversion (§‎6.1.4). If an explicit reference conversion fails, a System.InvalidCastException is thrown.

Reference conversions, implicit or explicit, never change the referential identity of the object being converted. In other words, while a reference conversion may change the type of the reference, it never changes the type or value of the object being referred to.

6.2.4 Unboxing conversions

An unboxing conversion permits an explicit conversion from type object or System.ValueType to any value-type, or from any interface-type to any value-type that implements the interface-type. An unboxing operation

Copyright Microsoft Corporation 1999-2003. All Rights Reserved.101

Document info
Document views1018
Page views1018
Page last viewedFri Dec 09 19:56:12 UTC 2016
Pages396
Paragraphs9401
Words133190

Comments