Różnica między out a ref w C #

Kluczowa różnica - obecnie vs ref w C #
 

C # to nowoczesny język programowania opracowany przez Microsoft. Służy do opracowywania różnych aplikacji na komputery, Internet i urządzenia mobilne. Funkcje lub metody to koncepcja programowania. Ta grupa instrukcji używanych do wykonania określonego zadania jest znana jako funkcja lub metoda. W programach C # wykonywanie rozpoczyna się od main (). To jest przykład metody. Podczas wywoływania metody dane są przekazywane do metody lub odbierane z metody. Metoda wywołująca nową metodę jest znana jako wywołanie metody. Nowa metoda jest znana jako nazywana metodą. Do zarządzania przekazywanymi wartościami i odzyskiwania wyników C # używa parametrów. Są to wartościowe parametry, parametry wyjściowe i parametry odniesienia. Parametry wartości służą do przekazywania parametrów do metody według wartości. Parametry odniesienia służą do przekazywania parametrów do metody przez odniesienie. Parametry wyjściowe są używane do przekazania wyniku z powrotem z metody. W języku C # słowo kluczowe out służy do parametrów wyjściowych, a słowo kluczowe ref służy do odwoływania się do parametrów. The kluczowa różnica jest to między out i ref w C #, out jest słowem kluczowym używanym do odsyłania parametru wyjściowego, który jest używany do przekazywania wyników z wywoływanej metody do metody wywołującej, natomiast ref jest słowem kluczowym do odsyłania parametru referencyjnego używanego do przekazywania danych z metody wywołującej do wywoływanej metody i do odbierania danych od metody wywoływanej do metody wywołującej.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co jest w C #
3. Co to jest ref w C #
4. Podobieństwa między out i ref w C #
5. Porównanie obok siebie - out vs ref w C # w formie tabelarycznej
6. Podsumowanie

Co jest w C #?

Składnia funkcji lub metody jest następująca. Metoda ma wiele elementów, takich jak nazwa metody, lista parametrów, typ zwrotu i specyfikator dostępu.

(lista parametrów)

// instrukcje do wykonania

Każda metoda ma unikalną metodę wykonania wywołania funkcji. Wykonywalne instrukcje znajdują się w nawiasach klamrowych. Typ zwracany wyjaśnia, czy funkcja zwraca wartość, czy nie. Gdy nie ma typu zwrotu, nazywa się to void. Specyfikator dostępu służy do określania dostępności metody w aplikacji. Parametry są używane do odbierania lub przekazywania danych do metody. Mogą również istnieć metody bez parametrów. Parametry mogą być wartościowanymi parametrami, parametrami wyjściowymi lub parametrami odniesienia.

Parametry wyjściowe służą do przekazywania wyników z powrotem do metody wywołującej. W tym celu należy zadeklarować parametr z wykluczonym słowem kluczowym. Parametr wyjściowy nie tworzy nowej lokalizacji przechowywania. Ogólnie metoda zwraca jedną wartość. Ale w języku C # możliwe jest zwrócenie dwóch wartości z funkcji przy użyciu parametrów wyjściowych. Zobacz poniższy program.

aplikacja przestrzeni nazw1

            Obliczenia klasy publicznej

public void display (out int a, out int b)

wartość int = 5;

a = wartość;

b = wartość;

a = a * a;

b = b * b;

public static void main (String [] args)

int wartość 1 = 10, wartość 2 = 20;

Obliczanie cal = nowe obliczanie ();

cal.display (wartość wyjściowa 1, wartość wyjściowa 2);

Console.ReadLine ();

Funkcja wyświetlania jest wywoływana z głównej metody. Wartość1 i wartość druga mają 10 i 20, ale nie są uwzględniane w metodzie. Wartość a wynosi 25, a wartość b wynosi również 25 w funkcji. Dlatego te wartości są zwracane. Podczas drukowania wartości 1 i 2 nie da 10 i 20. Zamiast tego wypisze 25 i 25. Przy użyciu słowa kluczowego out można zwrócić wiele wartości z metody.

Co to jest ref w C #?

Podczas przekazywania parametrów według wartości dla każdego parametru tworzona jest nowa lokalizacja pamięci. Rzeczywiste parametry wysłane z programu głównego nie ulegają zmianie. Zamiast tego wartości te są kopiowane do osobnej lokalizacji. Te nowe kopie zmiennych nazywane są parametrami formalnymi. Zobacz poniższy kod.

aplikacja przestrzeni nazw1

Obliczenia klasy publicznej

public void swap (int x, int y)

int temp;

temp = x;

x = y;

y = temp;

public static void main (String [] args)

Obliczanie cal = nowe obliczanie ();

int p = 2;

int q = 3;

cal.swap (p, q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Zgodnie z powyższym programem klasa Calculation ma metodę swap (). W programie głównym tworzony jest obiekt typu Obliczenie. Istnieją dwie wartości, takie jak p i q. Zmienna p ma wartość 2, a zmienna q ma wartość 3. Te dwie wartości są przekazywane do metody zamiany. W metodzie wymiany wartość 2 jest kopiowana do zmiennej x, a wartość 3 jest kopiowana do zmiennej y. Za pomocą zmiennej temp wartości są zamieniane. Wracając do programu głównego, podczas drukowania p i q wartości nie są zamieniane. Wartość p wynosi nadal 2, a wartość q wynosi 3. Nawet w metodzie wymiany wartości są zamieniane, ale nie odzwierciedlają się w programie głównym.

W przeciwieństwie do przekazywania wartości jak wyżej, parametry można przekazywać przez odniesienie. Zmienna referencyjna jest referencją do lokalizacji w pamięci. Nie utworzono nowej lokalizacji pamięci. Zmiany w metodzie odzwierciedlone w programie głównym. W języku C # parametry referencyjne są odwoływane za pomocą słowa kluczowego ref. Zobacz poniższy program.

aplikacja przestrzeni nazw1

Obliczenia klasy publicznej

public void swap (ref int x, ref int y)

int temp;

temp = x;

x = y;

y = temp;

public static void main (String [] args)

Obliczanie cal = nowe obliczanie ();

int p = 2;

int q = 3;

cal.swap (ref p, ref q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Zgodnie z powyższym programem klasa Obliczenia ma metodę wymiany. W programie głównym tworzony jest obiekt typu Obliczenie. Są to dwie zmienne, takie jak p i q. Zmienna p ma wartość 2, a zmienna q ma wartość 3. Zamiast przekazywania wartości, odwołanie do lokalizacji pamięci p i q jest przekazywane do metody. Te zmienne referencyjne są przywoływane za pomocą ref. W metodzie wymiany zamiast kopiowania wartości do nowej lokalizacji, zmiany są wprowadzane do rzeczywistych parametrów. Podczas drukowania wartości p i q programu głównego, poda zamienione wartości. Teraz wartość p wynosi 3, a wartość q wynosi 2.

Jakie jest podobieństwo między wyjściem a ref w C #?

  • Oba są słowami kluczowymi używanymi do odsyłania parametrów metody.

Jaka jest różnica między wyjściem a ref w C #?

out vs ref w C #

Out jest słowem kluczowym w języku C #, które jest używane do odwołania parametru wyjściowego. Służy do przekazywania wyników z wywoływanej metody do wywołania metody. Ref jest słowem kluczowym w języku C #, które jest używane do odwołania parametru referencyjnego. Służy do przekazywania danych z wywoływanej metody do wywoływanej metody oraz do zwracania danych z wywoływanej metody do wywoływanej metody.
Funkcjonalność
Podczas używania słowa kluczowego out dane mogą być przekazywane z metody wywołującej do metody wywoływanej. Ale te dane są odrzucane. Służy do przekazania wyniku do metody wywołującej z metody wywoływanej. Podczas używania słowa kluczowego ref dane są przekazywane z metody wywołującej do wywoływanej metody, a zmanipulowane dane są przekazywane z powrotem do metody wywołującej.
Przekazywanie danych
Podczas używania słowa kluczowego out dane są przekazywane w jeden sposób, który jest metodą wywoływaną, do metody wywołującej. Podczas używania słowa kluczowego ref dane są przekazywane na dwa sposoby, od metody wywołującej do metody wywoływanej i od metody wywoływanej do metody wywołującej.

Podsumowanie - obecnie vs ref w C # 

Podczas wywoływania metody może być konieczne przekazanie wartości do metody i odzyskanie wyników z metody. C # ma różne parametry, aby to osiągnąć. Parametry wartości służą do przekazywania parametrów do metody według wartości. Parametry odniesienia służą do przekazywania parametrów do metody przez odniesienie. Parametry wyjściowe są używane do przekazania wyniku z powrotem z metody. W języku C # słowo kluczowe out służy do parametrów wyjściowych, a słowo kluczowe ref służy do odwoływania się do parametrów. Różnica między out i ref w C # polega na tym, że out jest słowem kluczowym używanym do odsyłania parametru wyjściowego, który jest używany do przekazywania wyników z wywoływanej metody do metody wywołującej, natomiast ref jest słowem kluczowym do odsyłania parametru referencyjnego używanego do przekazywania danych z metoda wywołująca metodę wywoływaną i do odbierania danych z metody wywoływanej do metody wywołującej.

Pobierz plik PDF out vs ref w C #

Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz wersję PDF tutaj: Różnica między Out a Ref w C #

Odniesienie:

1.tutorialspoint.com. „Metody C #”. Punkt. Dostępny tutaj 
2.dnfvideo. Parametry C # Out Parametry VF REF, .NET Wywiad Przygotowanie wideo, 28 września 2015. Dostępne tutaj  

Zdjęcie dzięki uprzejmości:

1.'C sharp'By Mothmolevna - Praca własna, (domena publiczna) przez Commons Wikimedia