C# wskaźniki

C# wskaźniki
W C#wskaźniki są przydzielane do rzadkiego i zaawansowanego programowania; są one zwykle używane podczas interakcji z ramą COM. Wskaźniki są obsługiwane tylko w ograniczonym stopniu w C#. Typy wskaźników, w przeciwieństwie do typów referencyjnych, nie są monitorowane przez domyślny proces zbierania śmieci. Wskaźniki mogą wskazywać tylko na niezarządzane typy, które obejmują wszystkie podstawowe typy enum, typy danych, inne typy wskaźników i struktury, które po prostu zawierają typy niezarządzane. Artykuł będzie ci odpowiednio pokazać na temat wskazówek C#.

Jakie są wskaźniki w C# w Ubuntu 20.04?

Wskaźniki są wykorzystywane do dynamicznego alokacji pamięci. Możemy powiedzieć, że wskaźnik to zmienna, która utrzymuje adres lokalizacji pamięci. W programie są dwie części do każdej zmiennej:

  1. Adres zmienny.
  2. Zmieniona wartość zmienna.

Gdy stwierdzenie w C# jest zadeklarowane jako niebezpieczne z niebezpiecznym słowem kluczowym, używane są wskazówki. Te stwierdzenia, które wykorzystują zmienne wskaźnika, nie są kontrolowane przez poborcy śmieci.

Dokonanie wskaźników w C# w Ubuntu 20.04

Kolejny skrypt jest ogólną składnią sposobu zadeklarowania typu wskaźnika:

Typ *nazwa Varible_name;
int* p;

Operator dereferencji jest oznaczony przez symbol gwiazdkowy (*). Wartość z adresu, na które odniesienia wskaźnika są nabywane za pomocą operatora dereference. Deklaruje „P”, zmienną wskaźnika, która przenosi adres INT. Należy zauważyć, że gdy funkcja bloku kodu jest oznaczona z niebezpiecznym modyfikatorem, C# umożliwia użycie zmiennych wskaźników. Blok kodu, w którym deklarowana jest zmienna wskaźnika, jest znany jako niebezpieczny kod lub niezarządzany kod. W Ubuntu 20.04, musimy skompilować niebezpieczny kod w ten sposób: CS /niebezpieczna nazwa pliku.Cs

Jak używać wskazówek w C# w Ubuntu 20.04

Słowo kluczowe niebezpieczne można użyć na wiele sposobów. Można go użyć do modyfikacji metody, właściwości, konstruktora i tak dalej. Aby lepiej zrozumieć, w jaki sposób wskaźniki są deklarowane w języku programowania C#, rozważ następujące przykłady:

Przykład nr 1: Używanie wskazówek do deklaracji w C # w Ubuntu 20.04

Poniższa ilustracja pokazuje, jak zadeklarować i wykorzystać zmienną wskaźnika. Tutaj wykorzystaliśmy niebezpieczny modyfikator. Znak * jest używany do domyślnego zadeklarowania wskaźników, jak w danym przykładzie:

Kod zaczyna się od importowania plików użycia i przestrzeni nazw. Plik przestrzeni nazw przypisał nazwę „CSharppointers”. Plik przestrzeni nazw ma blok, w którym zdefiniowaliśmy klasę „Program1”. W klasie „Program1” mamy niebezpieczne słowa kluczowe używane z główną funkcją. Niebezpieczne słowo kluczowe pozwala nam używać niebezpiecznych kodów tylko w C#. Następnie zadeklarowaliśmy dwie zmienne w niebezpiecznej funkcji głównej. Pierwszą zmiennej przypisuje się nazwę „wartość” i ustawia jej typ na int. Zmienna „wartość” to wartość liczb całkowita. Druga zmienna jest reprezentowana jako „v” typu int z symbolem gwiazdkową (*), więc była zmienną wskaźnika typu liczb całkowitych. Zmienna wskaźnika ma operator adresu (&) używany ze zmienną „wartością”. Jako wskaźnik zwróci adres wartości. Instrukcja WriteLine wydrukuje wartość i adres określonych zmiennych.

Otrzymaliśmy następujące dane wyjściowe z powyższego wykonywania kodu. Wartość i adres pokazano na obrazie.

Przykład nr 2: Używanie wskazówek do dostępu do tablic w C # w Ubuntu 20.04

Tablica to zestaw danych tego samego rodzaju, które wyróżniają się jedynie ich zamówieniem. W następującym programie C# dostęp do tablic jest dostępny za pomocą notacji wskaźnika.

Kod pokazano, gdzie zdefiniowaliśmy klasę w pliku przestrzeni nazw „Pointerprogram”. Klasa przypisała nazwę „Program2” i nazwaliśmy główną funkcję z niebezpiecznym modyfikatorem. W niebezpiecznej głównej funkcji stworzyliśmy tablicę referencyjną typu INT jako „myarray”. W tablicy przechowyliśmy pięć różnych wartości. Następnie stworzyliśmy zmienną „PTR” z notacją wskaźnika. Zmienna wskaźnika zapisała tablicę i przypięliśmy zmienną wskaźnika za pomocą słowa kluczowego „naprawionego”. „Naprawiono” słowo kluczowe ogranicza zmienną tablicy do określonej alokacji pamięci. Instrukcja WriteLine służy do wyświetlania adresu pamięci tablicy i wartości typu danych.

Jak widać, każdy element w tablicy, a także jego adres, jest wyświetlany na wyjściu powyższego kodu.

Przykład nr 3: Używanie wskazówek w strukturach w C # w Ubuntu 20.04

W C#typy wartości są jedynymi składnikami struktur. Wskaźniki są używane tylko w strukturach, w których główni członkowie są typami wartości. Wskaźniki są wykorzystywane do dostępu do członków struktury w następującym programie napisanym w C#.

Powyższy kod ma strukturę zdefiniowaną jako „pracownik”, aw strukturze ustawiliśmy jego członków „empid” typu int i „empsalary” właściwości typu. Zbudowaliśmy również konstruktor „Pracownik” struktury, aby zainicjować wartości „empid” i „empsalary” jako „x” i „y”. Następnie stworzyliśmy klasę „Program3”, która ma główną funkcję. W głównej funkcji mamy niebezpieczną etykietę, która nie musiałaby używać niebezpiecznej instrukcji do zamknięcia zmiennych wskaźników lub czegokolwiek innego, ponieważ deklaracja funkcji sama się uczyni. Wartości są ustalane dla członków „empid” i „empsalary” w obiekcie „E1”. Wskaźnik jest tworzony dla struktury „pracownik” jako „E1_PTR” i inicjuje go z adresem „E1”.

Instrukcja WriteLine służy do wyświetlania podanych szczegółów „pracownika”. Zastosowaliśmy operatora strzałek z wskaźnikami, które uzyskały dostęp do zmiennych i metod określonej struktury.

Powyższe wykonanie programu ma następujące dane wyjściowe pokazane na ekranie terminalu.

Przykład nr 4: Używanie wskazówek w metodach w C # w Ubuntu 20.04

Wskaźnik może być również zwrócony metodami. Przykład pokazany poniżej przekazał wskaźniki jako parametr do metody.

Mamy klasę zdefiniowaną jako „Program4” w pliku przestrzeni nazw. Klasa ma główną funkcję jako „metodę”, w której użyliśmy etykiety „niebezpieczna”. W niebezpiecznym bloku zadeklarowaliśmy zmienną „A1” i „A2”. Zmienne te są inicjowane z wartościami całkowitymi. Stworzyliśmy dwa wskaźniki jako „ptr1” i „ptr2” typu int. Teraz te wskaźniki nazywane są zmiennymi wskaźników całkowitych. Dostaliśmy adres zmiennych „A1” i „A2” do tych wskaźników. Wywołana jest metoda pisania, która wyświetli wartość i adres danych zmiennych. Następnie mamy kolejną klasę „demo”, w której musimy zadeklarować obiekt „P” dla klasy „Program4”. „Metoda” jest wywoływana w tej klasie, aby uzyskać dostęp do wartości i adresu jego członka w klasie „demo”.

Po skompilowaniu powyższego kodu otrzymujemy kolejne dane wyjściowe.

Wniosek

Doszliśmy do końca artykułu, odkrywając, że wskazówki wyświetlające adres pamięci są wykonywane przy użyciu niebezpiecznego zestawu stwierdzeń. Niebezpieczny kod jest potrzebny, ponieważ śmieci nie utrzymuje lokalizacji pamięci w niezarządzanym środowisku. Nauczyliśmy się sposobów wykorzystania wskaźników w metodach, strukturach i dostępu do szeregu elementów za pomocą różnych ilustracji.