Bagikan melalui


Jenis bawaan (referensi C#)

Tabel berikut mencantumkan jenis nilai bawaan C#:

Kata kunci jenis C# Jenis .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

Tabel berikut mencantumkan jenis referensi bawaan C#:

Kata kunci jenis C# Jenis .NET
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

Dalam tabel sebelumnya, sebagian besar kata kunci jenis C# dari kolom kiri adalah alias untuk jenis .NET yang sesuai. Mereka bisa dipertukarkan. Misalnya, deklarasi berikut mendeklarasikan variabel dengan jenis yang sama:

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

Jenisnya dynamic mirip objectdengan . Perbedaan utama adalah:

  • Operasi pada dynamic ekspresi terikat pada runtime, bukan pada waktu kompilasi.
  • Anda tidak dapat menggunakan new dynamic().
  • Anda tidak dapat memperoleh jenis dari jenis tersebut dynamic .

Kata delegate kunci adalah kata kunci jenis referensi bawaan yang mendeklarasikan jenis yang berasal dari System.Delegate. Tidak seperti kata kunci jenis bawaan lainnya, delegate bukan alias untuk jenis .NET tertentu. Sebaliknya, ia mendeklarasikan jenis kustom yang berasal dari jenis abstrak System.Delegate . Demikian pula, dynamic mewakili perilaku pengikatan runtime daripada menjadi alias langsung untuk jenis .NET tertentu.

Kata void kunci mewakili tidak adanya jenis. Anda menggunakannya sebagai jenis pengembalian metode yang tidak mengembalikan nilai.

Bahasa C# mencakup aturan khusus untuk System.Span<T> jenis dan System.ReadOnlySpan<T> . Jenis ini tidak diklasifikasikan sebagai jenis bawaan, karena tidak ada kata kunci C# yang sesuai dengan jenis ini. Bahasa C# mendefinisikan konversi implisit dari jenis array dan jenis string ke Span<T> dan ReadOnlySpan<T>. Konversi ini mengintegrasikan Span jenis ke dalam skenario pemrograman yang lebih alami. Konversi berikut didefinisikan sebagai konversi rentang implisit:

  • Dari array dimensi tunggal apa pun dengan jenis E elemen hingga System.Span<E>
  • Dari array dimensi tunggal apa pun dengan jenis E elemen ke System.ReadOnlySpan<U>, ketika E memiliki konversi kovariansi atau konversi identitas ke U
  • Dari System.Span<E> ke System.ReadOnlySpan<U>, ketika E memiliki konversi kovariansi atau konversi identitas ke U
  • Dari System.ReadOnlySpan<E> ke System.ReadOnlySpan<U>, ketika E memiliki konversi kovariansi atau konversi identitas ke U
  • Dari string ke System.ReadOnlySpan<char>

Pengkompilasi tidak pernah mengabaikan konversi yang ditentukan pengguna di mana ada konversi rentang implisit yang berlaku. Konversi rentang implisit dapat diterapkan ke parameter penerima anggota ekstensi. Parameter penerima ditentukan oleh extension kata kunci dalam anggota ekstensi. Parameter penerima adalah parameter pertama dari metode ekstensi menggunakan pengubah this . Konversi rentang implisit tidak dipertimbangkan untuk konversi grup metode.

Lihat juga