C# Language Specification


Explicit reference conversions



Download 0,75 Mb.
bet151/524
Sana06.01.2022
Hajmi0,75 Mb.
#324842
1   ...   147   148   149   150   151   152   153   154   ...   524
Bog'liq
CSharp Language Specification

Explicit reference conversions


The explicit reference conversions are:

  • From object and dynamic 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 a single-dimensional array type S[] to System.Collections.Generic.IList and its base interfaces, provided that there is an explicit reference conversion from S to T.

  • From System.Collections.Generic.IList and its base interfaces to a single-dimensional array type T[], provided that there is an explicit identity or reference conversion from S to T.

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

  • From a reference type to a reference type T if it has an explicit reference conversion to a reference type T0 and T0 has an identity conversion T.

  • From a reference type to an interface or delegate type T if it has an explicit reference conversion to an interface or delegate type T0 and either T0 is variance-convertible to T or T is variance-convertible to T0 (§13.1.3.2).

  • From D1…Sn> to D1…Tn> where D1…Xn> is a generic delegate type, D1…Sn> is not compatible with or identical to D1…Tn>, and for each type parameter Xi of D the following holds:

  • If Xi is invariant, then Si is identical to Ti.

  • If Xi is covariant, then there is an implicit or explicit identity or reference conversion from Si to Ti.

  • If Xi is contravariant, then Si and Ti are either identical or both reference types.

  • Explicit conversions involving type parameters that are known to be reference types. For more details on explicit conversions involving type parameters, see §6.2.7.

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.6) or boxing conversion (§6.1.7). 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.


      1. Download 0,75 Mb.

        Do'stlaringiz bilan baham:
1   ...   147   148   149   150   151   152   153   154   ...   524




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish