Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższej tabeli wymieniono wbudowane typy wartości języka C#:
| Słowo kluczowe typu C# | Typ platformy .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 |
W poniższej tabeli wymieniono wbudowane typy referencyjne języka C#:
| Słowo kluczowe typu C# | Typ platformy .NET |
|---|---|
object |
System.Object |
string |
System.String |
delegate |
System.Delegate |
dynamic |
System.Object |
W poprzednich tabelach większość słów kluczowych typu C# z lewej kolumny to aliasy odpowiadającego mu typu .NET. Są one zamienne. Na przykład następujące deklaracje deklarują zmienne tego samego typu:
int a = 123;
System.Int32 b = 123;
Typ dynamic jest podobny do object. Główne różnice są następujące:
- Operacje na wyrażeniu
dynamicsą powiązane w czasie wykonywania, a nie w czasie kompilacji. - Nie można użyć
new dynamic(). - Nie można utworzyć typu na podstawie
dynamictypu.
Słowo delegate kluczowe to wbudowane słowo kluczowe typu odwołania, które deklaruje typ pochodzący z System.Delegateklasy . W przeciwieństwie do innych wbudowanych słów kluczowych typu, delegate nie jest aliasem dla określonego typu platformy .NET. Zamiast tego deklaruje typy niestandardowe pochodzące z typu abstrakcyjnego System.Delegate . Podobnie reprezentuje zachowanie powiązania środowiska uruchomieniowego, dynamic a nie jest bezpośrednim aliasem dla określonego typu platformy .NET.
Słowo void kluczowe reprezentuje brak typu. Jest on używany jako zwracany typ metody, która nie zwraca wartości.
Język C# zawiera wyspecjalizowane reguły dla System.Span<T> typów i System.ReadOnlySpan<T> . Te typy nie są klasyfikowane jako typy wbudowane, ponieważ nie ma słów kluczowych języka C#, które odpowiadają tym typom. Język C# definiuje niejawne konwersje z typów tablic i typu ciągu na Span<T> i ReadOnlySpan<T>. Te konwersje integrują Span typy z bardziej naturalnymi scenariuszami programowania. Następujące konwersje są definiowane jako niejawne konwersje zakresu:
- Z dowolnej tablicy jednowymiarowej z typem
Eelementu doSystem.Span<E> - Z dowolnej tablicy jednowymiarowej z typem
Eelementu doSystem.ReadOnlySpan<U>, w przypadkuEkonwersji wariancji lub konwersji tożsamości naU - Od
System.Span<E>doSystem.ReadOnlySpan<U>, w przypadkuEkonwersji kowariancji lub konwersji tożsamości naU - Od
System.ReadOnlySpan<E>doSystem.ReadOnlySpan<U>, w przypadkuEkonwersji kowariancji lub konwersji tożsamości naU - Z
stringdoSystem.ReadOnlySpan<char>
Kompilator nigdy nie ignoruje żadnej konwersji zdefiniowanej przez użytkownika, jeśli istnieje odpowiednia niejawna konwersja zakresu . Niejawne konwersje zakresu można zastosować do parametru odbiornika składowych rozszerzeń. Parametr odbiornika jest określany przez extension słowo kluczowe w elemencie członkowskim rozszerzenia. Parametr odbiornika jest pierwszym parametrem metody rozszerzenia przy użyciu this modyfikatora. Niejawne konwersje zakresu nie są brane pod uwagę w przypadku konwersji grup metod.