Sdílet prostřednictvím


Předdefinované typy (referenční dokumentace jazyka C#)

Následující tabulka uvádí vestavěné hodnotové typy jazyka C#.

Klíčové slovo typu C# Typ .NET
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

V následující tabulce jsou uvedeny předdefinované referenční typy jazyka C#:

Klíčové slovo typu C# Typ .NET
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

V předchozích tabulkách jsou většina klíčových slov typu C# z levého sloupce aliasy pro odpovídající typ .NET. Jsou zaměnitelné. Například následující deklarace deklarují proměnné stejného typu:

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

Typ dynamic je podobný object. Hlavní rozdíly jsou:

  • Operace s výrazem dynamic jsou vázané za běhu, nikoli v době kompilace.
  • Nemůžete použít new dynamic().
  • Typ nelze odvodit z typu dynamic.

Klíčové delegate slovo je předdefinované referenční typ klíčové slovo, které deklaruje typ odvozený z System.Delegate. Na rozdíl od ostatních předdefinovaných klíčových slov delegate typu není alias pro konkrétní typ .NET. Místo toho deklaruje vlastní typy, které jsou odvozeny od abstraktního System.Delegate typu. dynamic Podobně představuje chování vazby modulu runtime místo přímého aliasu pro konkrétní typ .NET.

Klíčové slovo void představuje nepřítomnost typu. Použijete ho jako návratový typ metody, která nevrací hodnotu.

Jazyk C# obsahuje specializovaná pravidla pro typy System.Span<T> a System.ReadOnlySpan<T>. Tyto typy nejsou klasifikovány jako předdefinované typy, protože neexistují klíčová slova jazyka C#, která odpovídají těmto typům. V jazyce C# jsou implicitně definovány převody z typů pole a řetězce na Span<T> a ReadOnlySpan<T>. Tyto převody integrují typy Span do přirozenějších programovacích scénářů. Následující konverze jsou definovány jako implicitní konverze rozsahu :

  • Z libovolného jednorozměrného pole s typem elementu E na System.Span<E>
  • Z libovolného jednorozměrného pole s typem elementu E na System.ReadOnlySpan<U>, pokud E má převod kovariance nebo převod identity na U
  • Od System.Span<E> po System.ReadOnlySpan<U>pokud má E kovarianční nebo identitní převod na U
  • Od System.ReadOnlySpan<E> po System.ReadOnlySpan<U>pokud má E kovarianční nebo identitní převod na U
  • Z string do System.ReadOnlySpan<char>

Kompilátor nikdy nepřekočí žádný převod definovaný uživatelem, pokud existuje použitelný implicitní převod rozsahu. Implicitní převody rozsahu lze použít u parametru příjemce členů rozšíření. Parametr příjemce je určen klíčovým slovem extension v členu rozšíření. Parametr přijímače je prvním parametrem metody rozšíření pomocí modifikátoru this . Implicitní převody rozsahu se nepovažují za převody skupin metod.

Viz také