C# przejdź przez odniesienie

C# przejdź przez odniesienie
Podczas pracy w niektórych programach zorientowanych na obiekty, być może wypróbowałeś koncepcję przekazania wartości przez odniesienie w kodach, i.mi. C, c++. Przejdź za pomocą środków odniesienia, aby wskazać lokalizację pamięci określonej zmiennej bez tworzenia kopii. Odniesienia są najprawdopodobniej używane do wykonywania pewnych zmian i sprawiają, że odzwierciedlają je w pierwotnej lokalizacji pamięci bez żadnego problemu. Zwykle używamy postaci „i” w językach obiektowych do wykonywania odniesień do podania.

W ramach C#wykonujemy przenoszone wartości przez odniesienie za pomocą słowa kluczowego „Ref”. Zobaczmy, jak to działa. Począwszy od wdrożenia tego przewodnika, musimy mieć plik C#, aby utworzyć w nim niektóre kody programowania. Jak na razie dobrze; Używamy zapytania Ubuntu „Touch” do wygenerowania nowego pliku C# w bieżącym katalogu roboczym naszego systemu Linux.

Przykład 01

Rozpoczniemy nasz pierwszy przykład tego kodu z definicją struktury programu C#. Więc otworzyliśmy C#, utworzyliśmy plik w wbudowanym edytorze tekstu Ubuntu 20.04 i dodał bibliotekę „systemową” na pierwszej linii. Ta biblioteka jest głównym źródłem wejściowym i wyjściowym w kodach C#. Bez tej biblioteki nasz kod nie ma dla nas pożytku, ponieważ nie będzie działać tak, jak chcemy. Po dodaniu biblioteki utworzyliśmy losową przestrzeń nazw „Odniesienie” w tym kodzie. Ta przestrzeń nazw została zdefiniowana przez użytkownika.

W tym programie utworzyliśmy również nową klasę zdefiniowaną przez użytkownika „Odniesienie”, aby zainicjować nasz kod z pewną implementacją. Ta klasa „odniesienia” zdefiniowana przez użytkownika zawiera w sumie 2 funkcje. Pierwszą funkcją jest wbudowana funkcja main (.mi. Wszystkie wykonanie zaczyna się od tego. Drugą funkcją jest losowa funkcja zdefiniowana przez użytkownika o nazwie „Aktualizacja”, która ma typ zwrotu „publiczna pustka statyczna”.

Konsola.Funkcja WriteLine () ma wyświetlić oryginalną wartość zmiennej „N”, wykorzystując jej parametry, jak pokazano poniżej na obrazie. Następnie nazwaliśmy funkcję „aktualizacji” z głównej zmiennej przechodzenia „N” jako wartość parametryczna. Teraz kontrola przechodzi do funkcji „Aktualizacja”, która przyjmuje wartość zmiennej „N” jako odniesienie za pomocą nowej zmiennej „Val” typu liczb całkowitych. Ta zmienna „VAL” pomnożnie swoją przekazaną wartość „5” z funkcji main () przez „3” i zastąpia zmienną „VAL”.

Tutaj nie ma oświadczenia zwrotnego. Wykonanie funkcji aktualizacji zostało zakończone, a kontrola powróciła do funkcji „głównej”. Funkcja main () wykonuje kolejną konsolę.Funkcja writeLine () do wyświetlenia zaktualizowanej wartości zmiennej „n” przy użyciu „n” w swoich parametrach. Funkcja main () i nasz kod C# są kompletne i gotowe do użycia. Zapiszmy go przez Ctrl+S i wyjdźmy z Ctrl+X najpierw.

Po zapisaniu pliku C# pierwszym krokiem, który musimy zrobić, jest skompilowanie tego kodu z kompilatorem „MCS” C# skonfigurowanym już w naszym Ubuntu 20.04 System. Zrobiliśmy to, a plik „exe” dla tego skompilowanego kodu został automatycznie utworzony w tej samej lokalizacji. Użyliśmy instrukcji wykonania „mono” dla kodów C# do wykonania tego pliku „exe” i otrzymania wyniku pokazywania się. Okazuje się, że oryginalna wartość i zaktualizowana wartość są takie same, i.mi. Do tej pory nie wprowadzono żadnych zmian.

Sprawdźmy teraz problem. Kiedy próbujemy zaktualizować wartość zmiennej „N”, przekazując ją jako odniesienie, nie lokalizuje adresu pamięci oryginalnej zmiennej „N”. Zamiast tego utworzył inny obiekt repliki o tej samej nazwie i wartości i przekazał go do funkcji aktualizacji. Zatem zmiany wprowadzone w nowym obiekcie nie wpływają na pierwotną wartość „N”.

Aby uniknąć tego problemu, framework C# wymyślił nowe słowo kluczowe „Ref”, aby przekazać wartości jako odniesienie do dowolnego parametru funkcji. Korzystając z tego słowa kluczowego „Ref”, zamiast nowego adresu pamięci użyto oryginalnej lokalizacji pamięci zmiennej, i.mi. wskazując na lokalizację pamięci oryginalnej zmiennej. W ten sposób zaktualizowaliśmy nasz kod i użyliśmy słowa kluczowego „Ref” podczas przekazywania zmiennej „N” jako odniesienia do funkcji aktualizacji. To słowo kluczowe zostało użyte w funkcji Main (), podczas gdy funkcja wywoływana do funkcji „aktualizacja” oraz w parametrach funkcji „aktualizacja ()”.

Po skompilowaniu zaktualizowanego pliku C# i uruchomieniu jego „exe” tuż po tym, przedstawiono nam pokazane dane wyjściowe. Tym razem wartość „5” zmiennej „N” została zaktualizowana do „15” ze względu na użycie słowa kluczowego „Ref” w celu przekazania wartości jako odniesienia.

Przykład 02

Spójrzmy na inny przykład, aby wykonać zamian, przekazując wartości w parametrach. „Test” klasowy używa funkcji „zamiany” zdefiniowanej przez użytkownika i funkcji sterownika Main (). Wykonanie rozpoczęło się od metody main (), w której utworzyliśmy obiekt „t” testu klasy i zainicjowaliśmy dwie zmienne całkowite, v1 i v2, z wartościami liczb całkowitych-konsolą.Instrukcje funkcji writeLine () wyświetlają wartości zmiennych v1 i v2 przed zamianą.

Następnie funkcja swap jest wywoływana przez przekazanie zmiennych V1 i V2 w jego parametrach jako odniesienie. Słowo kluczowe „Ref” zostało tutaj wykorzystane dla obu zmiennych. W ramach implementacji funkcji „aktualizacja” użyliśmy również słowa kluczowego „Ref” dla obu zmiennych N1 i N2 do przekazywania wartości przez odniesienie. Aby zamienić wartości jednej zmiennej na drugą, musimy mieć trzecią wartość, aby to wykonać. Nowa zmienna „V” została zainicjowana w ramach tej funkcji, przyjmując wartość zmiennej N1 jako pierwszą część. Wartość N2 została zastąpiona w zmiennej N1, a wartość zmiennej V została zapisana na zmienną N2. Zmienanie wartości N1 z N2 została tutaj wykonana. Main () konsola funkcyjna.Funkcja WriteLine () jest teraz wyświetlana nowo wymienionymi wartościami N1 i N2.

Po kompilacji i wykonaniu tego przykładowego kodu mamy wartości V1 i V2 jako 14 i 7. Po zamianie okazuje się, że jest odwrotnie, ja.mi. v1 = 7 i v2 = 14.

Jeśli usuniemy słowo kluczowe „Ref” z wywołania funkcji i definicji funkcji funkcji „Aktualizacja”, tak jak to zrobiliśmy poniżej, zamiana nie zostanie wykonana.

Tutaj widać, że wyjście pokazuje, że wartości V1 i V2 są takie same, nawet po użyciu funkcji swap.

Wniosek

Ten przewodnik dotyczy używania słowa kluczowego „Ref” w C# do wykonania wartości przekazywania przez odniesienie. To odniesienie zostało wykonane przy użyciu dokładnej lokalizacji pamięci niektórych zmiennych. W ramach tego przewodnika omówiliśmy za pomocą słowa kluczowego „Ref” w celu aktualizacji pierwotnej wartości zmiennej poprzez pomnożenie jej z pewną liczbą i zamianę wartości dwóch zmiennych w dwóch różnych przykładach. Zostało to bardzo sprawnie z „Ref”.