Jakie typy danych istnieją w C#

Jakie Typy Danych Istnieja W C



Typy danych są ważnym aspektem każdego języka programowania, a język C# oferuje kilka typów danych używanych do deklarowania zmiennych, definiowania metod i tworzenia obiektów. W tym artykule omówimy różne typy danych w języku C# i ich podkategorie, w tym typy danych wartości, odwołań i wskaźników.

Jakie typy danych istnieją w języku C#?

C# jest silnie typowany język programowania , co oznacza, że ​​wszystkie zmienne muszą być zadeklarowane z określonym typem danych i ma trzy główne kategorie typów danych:







1: Typy danych wartości

Typy danych wartości to te, które przechowują swoje wartości bezpośrednio w pamięci. Są one przydzielane na stosie i często wykorzystywane do przechowywania mniejszych zestawów danych. Poniżej przedstawiono podkategorie typów danych wartości:



Numeryczny typ danych



Te typy danych służą do przechowywania wartości liczbowych. Liczbowe typy danych są podzielone na kilka podkategorii, takich jak liczby dziesiętne, liczby całkowite i liczby zmiennoprzecinkowe:





  • liczby całkowite: Te typy danych są używane do przechowywania liczb całkowitych, a podkategorie liczb całkowitych obejmują sbyte, byte, short, ushort, int, uint, long i ulong. Zakres wartości, które może przechowywać każdy format danych liczb całkowitych, jest różny.
  • Liczb zmiennoprzecinkowych: Te typy danych są używane do przechowywania liczb dziesiętnych, a podkategorie liczb zmiennoprzecinkowych obejmują liczbę zmiennoprzecinkową i podwójną. Float może przechowywać do 7 cyfr dziesiętnych, podczas gdy double może przechowywać do 15 cyfr dziesiętnych.
  • dziesiętne: Te typy danych są używane do przechowywania bardzo precyzyjnych liczb całkowitych dziesiętnych. Dziesiętny może przechowywać do 28 cyfr dziesiętnych.

Logiczny typ danych

W tej formie danych przechowywane są wartości logiczne, które mogą być tylko prawdziwe lub fałszywe.



Typ danych znakowych

Pojedyncze znaki są przechowywane przy użyciu tego typu danych.

Przykład

Poniższy przykładowy kod ilustruje sposób wykorzystania typu danych wartości w języku C#:

przy użyciu Systemu;

przestrzeń nazw ValueDataTypesExample
{
Program klasowy
{
statyczna pustka Główny ( strunowy [ ] argumenty )
{
int mojaInt = 5 ;
float mójFloat = 3,14f;
podwój mojePodwójne = 3.14159265359 ;
bool mójBool = PRAWDA ;
znak mój znak = 'A' ;

Console.WriteLine ( „Moja wartość całkowita to:” + mójInt ) ;
Console.WriteLine ( „Moja wartość zmiennoprzecinkowa to:” + myFloat ) ;
Console.WriteLine ( „Moja podwójna wartość to:” + mój podwójny ) ;
Console.WriteLine ( „Moja wartość logiczna to:” + mójBool ) ;
Console.WriteLine ( „Moja wartość postaci to:” + mój znak ) ;
}
}
}

W tym przykładzie zadeklarowaliśmy i zainicjowaliśmy zmienne o różnych typach danych, takich jak int, float, double, bool i char. Następnie wydrukowaliśmy wartości tych zmiennych za pomocą metody Console.WriteLine, wynikiem tego programu będzie:

2: Referencyjne typy danych

Typy danych referencyjnych to te, które przechowują odniesienie do lokalizacji pamięci, w której przechowywana jest wartość. Są one przydzielane na stercie i są zwykle używane do przechowywania większych ilości danych. Poniżej przedstawiono podkategorie referencyjnych typów danych:

Klasa

W języku C# klasa jest typem referencyjnym, który definiuje schemat tworzenia obiektów.

Strunowy

Ten referencyjny typ danych jest używany do przechowywania danych tekstowych, string jest typem referencyjnym, ale na wiele sposobów zachowuje się jak typ wartościowy.

Szyk

Przy użyciu tego typu danych można przechowywać zbiór wartości tego samego typu. Tablice są typami referencyjnymi, ale w niektórych przypadkach mogą również zachowywać się jak typy wartościowe.

Interfejs

Interfejs definiuje zestaw metod, właściwości, zdarzeń i indeksatorów bez podawania szczegółów implementacji.

Delegat

Delegat umożliwia przekazanie metody jako argumentu innej metodzie, a następnie wywołanie tej metody później za pośrednictwem delegata.

Przykład

Oto przykładowy kod C#, który pokazuje, jak używać referencyjne typy danych :

przy użyciu Systemu;

osoba klasowa
{
ciąg publiczny Nazwa;
publiczny int Wiek;
}

Program klasowy
{
statyczna pustka Główny ( strunowy [ ] argumenty )
{
Osoba osoba1 = nowa osoba ( ) ;
osoba1.Imię = 'SAMEGO SIEBIE' ;
osoba1.Wiek = 20 ;

Osoba osoba2 = osoba1;
osoba2.Wiek = 30 ;

Console.WriteLine ( osoba1.Imię + ' Jest ' + osoba1.Wiek + ' lat.' ) ;
Console.WriteLine ( osoba2.Imię + ' Jest ' + osoba2.Wiek + ' lat.' ) ;
}
}

Klasa Person w tym przykładzie ma dwa pola publiczne: Name, które jest typu string i Age, które jest typu int. Następnie tworzymy nową instancję klasy Person i przypisujemy ją osobie1 w metodzie Main. Modyfikujemy atrybuty Nazwa i Wiek osoby1.

Następnie tworzymy kolejną zmienną referencyjną person2 i przypisujemy jej wartość person1. Następnie zmieniamy właściwość Age osoby2 na 30.

Na koniec drukujemy imię i nazwisko oraz wiek osoby1 i osoby2. Zauważ, że zmieniając wartość osoba2.Wiek zmienia również wartość osoba1.Wiek , ponieważ obie zmienne odnoszą się do tego samego obiekt w pamięci.

3: Typy danych wskaźnika

Typy danych wskaźnikowych są używane do przechowywania adresu pamięci innej zmiennej. Są one używane w programowaniu niskiego poziomu, takim jak programowanie na poziomie systemu lub opracowywanie sterowników urządzeń . W języku C# typy danych wskaźników nie są używane bezpośrednio , ale można ich używać w niebezpiecznych blokach kodu. Poniżej znajduje się podkategoria typów danych wskaźników:

Typ danych wskaźnika

Ten typ danych jest używany do przechowywania adresu pamięci innej zmiennej.

Oto przykład demonstrujący użycie typy danych wskaźników w C#, choć wymaga to dużo uwagi:

przy użyciu Systemu;

Program klasowy {
static unsafe void Main ( ) {
int liczba = 10 ;
int * p = & na jednego;
Console.WriteLine ( $ 'Wartość num: {num}' ) ;
Console.WriteLine ( $ 'Adres num: {(long)p:X}' ) ;
Console.WriteLine ( $ „Wartość num przy użyciu wskaźnika: {*p}” ) ;
Konsola. Odczyt wiersza ( ) ;
}
}

W tym przykładzie używamy słowa kluczowego unsafe, aby umożliwić użycie wskaźników. Deklarujemy zmienną typu int i nadajemy jej wartość 10. Następnie tworzymy zmienną wskaźnikową pointer typu int* i przypisujemy jej adres pamięci wartości za pomocą operatora &.

Ponadto uzyskujemy dostęp do wartości przechowywanej w value przez wyłuskanie wskaźnika za pomocą operatora *, a także możemy zmodyfikować wartość za pomocą tego samego operatora:

Notatka: Używanie wskaźników w języku C# wymaga dodatkowej uwagi i uwagi, aby uniknąć problemów z zarządzaniem pamięcią, dlatego należy ich używać tylko wtedy, gdy jest to konieczne i ostrożnie.

Wniosek

W języku C# dostępnych jest wiele różnych typów danych, które można wykorzystać do różnych zadań. Mniejsze ilości danych są przechowywane przy użyciu typów danych wartości, a większe ilości są przechowywane przy użyciu referencyjnych typów danych. Typy danych wskaźnika są używane w programowaniu niskiego poziomu i nie są powszechnie używane w języku C#.