Megosztás a következőn keresztül:


Beépített típusok (C#-referencia)

Az alábbi táblázat a C# beépített értéktípusokat sorolja fel:

C# típusú kulcsszó .NET-típus
bool System.Boolean
byte System.Byte
sbyte System.SByte
char System.Char
decimal System.Decimal
double System.Double
float System.Single
int System.Int32
uint System.UInt32
nint System.IntPtr
nuint System.UIntPtr
long System.Int64
ulong System.UInt64
short System.Int16
ushort System.UInt16

Az alábbi táblázat a C# beépített referenciatípusokat sorolja fel:

C# típusú kulcsszó .NET-típus
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

Az előző táblázatokban a bal oldali oszlop legtöbb C# típusú kulcsszója a megfelelő .NET-típus aliasa. Felcserélhetők. A következő deklarációk például azonos típusú változókat deklarálnak:

int a = 123;
System.Int32 b = 123;

A dynamic típus hasonló a következőhöz object: . A legfontosabb különbségek a következők:

  • A dynamic kifejezések műveletei futásidőben vannak megkötve, nem fordítási időben.
  • A new dynamic()nem használható.
  • A típusból nem származtathat típust dynamic .

A delegate kulcsszó egy beépített referenciatípusú kulcsszó, amely deklarál egy, a forrásból System.Delegateszármaztatott típust. A többi beépített típusú kulcsszavakkal delegate ellentétben nem egy adott .NET-típus aliasa. Ehelyett az absztrakt System.Delegate típusból származó egyéni típusokat deklarál. Hasonlóképpen a futásidejű kötés viselkedését jelöli, dynamic nem pedig egy adott .NET-típus közvetlen aliasát.

A void kulcsszó egy típus hiányát jelöli. Olyan metódus visszatérési típusaként használja, amely nem ad vissza értéket.

A C#-nyelv speciális szabályokat tartalmaz a típusokra és System.Span<T> a System.ReadOnlySpan<T> típusokra vonatkozóan. Ezek a típusok nincsenek beépített típusokként besorolva, mert nincsenek C#-kulcsszavak, amelyek megfelelnek ezeknek a típusoknak. A C# nyelv a tömbtípusok implicit konverzióit, a sztringtípust pedig a Span<T>következőre ReadOnlySpan<T> határozza meg: Ezek az átalakítások természetesebb programozási forgatókönyvekbe integrálják Span a típusokat. A következő konverziók implicit span konverzióként vannak definiálva:

  • Bármely elemtípusú E egydimenziós tömbtől a System.Span<E>
  • Bármely elemtípusú ESystem.ReadOnlySpan<U>egydimenziós tömbtől a E kovariancia-átalakításig vagy identitásátalakításig U
  • System.Span<E> System.ReadOnlySpan<U> Kovarianciakonvertálás E vagy identitáskonvertálás esetén aU
  • System.ReadOnlySpan<E> System.ReadOnlySpan<U> Kovarianciakonvertálás E vagy identitáskonvertálás esetén aU
  • string és System.ReadOnlySpan<char> között

A fordító soha nem hagyja figyelmen kívül a felhasználó által definiált konverziót, ha létezik egy alkalmazható implicit span konverzió . Implicit span konverziók alkalmazhatók a bővítménytagok fogadóparaméterére. A fogadó paramétert egy extension bővítménytag kulcsszója adja meg. A fogadó paraméter egy bővítménymetódus első paramétere a this módosító használatával. Az implicit span konverziók nem tekinthetők metóduscsoport-átalakításoknak.

Lásd még