Klíčový rozdíl – out vs. ref v C
C je moderní programovací jazyk vyvinutý společností Microsoft. Používá se pro vývoj různých aplikací pro desktop, web a mobilní zařízení. Funkce nebo metody je pojem v programování. Tato skupina příkazů, které se používají k provedení konkrétní úlohy, se nazývá funkce nebo metoda. V programech C začíná provádění od hlavního (). Je to příklad metody. Při volání metody jsou data předána metodě nebo přijata z metody. Metoda, která volá novou metodu, se nazývá volání metody. Nová metoda je známá jako volaná metoda. Pro správu předávaných hodnot a získání zpět výsledku používá C parametry. Jsou to hodnotné parametry, výstupní parametry a referenční parametry. Parametry value se používají pro předávání parametrů do metody hodnotou. Referenční parametry se používají k předávání parametrů metodě odkazem. Výstupní parametry se používají k předání výsledku zpět z metody. V C se klíčové slovo out používá pro výstupní parametry a klíčové slovo ref se používá k odkazování na parametry. Klíčový rozdíl mezi out a ref v C je v tom, že out je klíčové slovo používané k odkazování na výstupní parametr, který se používá k předávání výsledků z volané metody do volající metody, zatímco ref je klíčové slovo k odkazování na referenční parametr, který se používá k předávání. data z volající metody do volané metody a přijímat data z volané metody do volající metody.
Co je v C?
Syntaxe funkce nebo metody je následující. Metoda má řadu prvků, jako je název metody, seznam parametrů, návratový typ a specifikátor přístupu.
(seznam parametrů)
{ //příkazy k provedení
}
Každá metoda má jedinečný způsob volání funkce. Spustitelné příkazy jsou ve složených závorkách. Návratový typ vysvětluje, zda funkce vrací hodnotu nebo ne. Pokud neexistuje žádný návratový typ, nazývá se void. Specifikátor přístupu se používá k určení přístupnosti metody v aplikaci. Parametry se používají k příjmu nebo předávání dat metodě. Mohou existovat i metody bez parametrů. Parametry mohou být hodnotné parametry, výstupní parametry nebo referenční parametry.
Výstupní parametry se používají k předání výsledků zpět volající metodě. Za tímto účelem by měl být parametr deklarován s klíčovým slovem out. Výstupní parametr nevytváří nové úložiště. Obecně metoda vrací jednu hodnotu. Ale v C je možné vrátit dvě hodnoty z funkce pomocí výstupních parametrů. Viz níže uvedený program.
jmenný prostor aplikace1{
výpočet veřejné třídy{
veřejné neplatné zobrazení (out int a, out int b){
int value=5;
a=hodnota;
b=hodnota;
a=a a;
b=bb;
}
public static void main(string args){
int hodnota1=10, hodnota2=20;
Calculation cal=new Calculation();
cal.display(mimo hodnotu1, mimo hodnotu2);
Console. ReadLine();
}
}
}
Funkce zobrazení je volána z hlavní metody. Hodnota1 a hodnota dvě mají 10 a 20, ale do metody se neberou. Hodnota a je ve funkci 25 a hodnota b je také 25. Proto jsou tyto hodnoty vráceny. Při tisku hodnoty1 a hodnoty2 neuvede 10 a 20. Místo toho vytiskne 25 a 25. Pomocí klíčového slova out lze z metody vrátit více hodnot.
Co je ref v C?
Při předávání parametrů podle hodnoty se pro každý parametr vytvoří nové úložiště. Skutečné parametry odeslané z hlavního programu se nemění. Místo toho se tyto hodnoty zkopírují do samostatného umístění. Tyto nové kopie proměnných se nazývají formální parametry. Viz níže uvedený kód.
jmenný prostor aplikace1{
výpočet veřejné třídy{
public void swap(int x, int y){
int temp;
temp=x;
x=y;
y=temp;
}
public static void main(string args){
Calculation cal=new Calculation();
int p=2;
int q=3;
cal.swap(p, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Podle výše uvedeného programu má třída Výpočet metodu swap (). V hlavním programu se vytvoří objekt typu Výpočet. Existují dvě hodnoty jako p a q. Proměnná p má hodnotu 2 a proměnná q má hodnotu 3. Tyto dvě hodnoty jsou předány metodě swap. Při metodě swap se hodnota 2 zkopíruje do proměnné x a hodnota 3 se zkopíruje do proměnné y. Pomocí proměnné temp se hodnoty prohodí. Zpět v hlavním programu při tisku p a q nejsou hodnoty prohozeny. Hodnota p je stále 2 a hodnota q je 3. I v metodě swap jsou hodnoty zaměněny, ale neodráží se v hlavním programu.
Na rozdíl od předávání hodnot, jak je uvedeno výše, je možné předávat parametry odkazem. Referenční proměnná je odkaz na paměťové místo. Není vytvořeno žádné nové paměťové místo. Změny v metodě se projevily v hlavním programu. V C jsou referenční parametry odkazovány pomocí klíčového slova ref. Viz níže uvedený program.
jmenný prostor aplikace1{
výpočet veřejné třídy{
public void swap(ref int x, ref int y){
int temp;
temp=x;
x=y;
y=teplota;
}
public static void main(string args){
Calculation cal=new Calculation();
int p=2;
int q=3;
cal.swap(ref p, ref q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Podle výše uvedeného programu má třída Výpočet metodu swap. V hlavním programu se vytvoří objekt typu Výpočet. Jsou to dvě proměnné jako p a q. Proměnná p má hodnotu 2 a proměnná q má hodnotu 3. Spíše než předávání hodnot jsou do metody předány odkazy na paměťová místa p a q. Tyto referenční proměnné jsou odkazovány pomocí ref. V metodě swap se namísto kopírování hodnot do nového umístění provádějí změny skutečných parametrů. Při tisku hodnot p a q hlavního programu poskytne prohozené hodnoty. Nyní je hodnota p 3 a hodnota q je 2.
Jaká je podobnost mezi out a ref v C?
Oba jsou klíčová slova používaná k odkazování na parametry metody
Jaký je rozdíl mezi out a ref v C?
out vs ref v C |
|
Out je klíčové slovo v C, které se používá k odkazování na výstupní parametr. Používá se k předání výsledků z volané metody do volání metody. | ref je klíčové slovo v C, které se používá k odkazování na referenční parametr. Používá se k předání dat z volající metody volané metodě ak návratu dat z volané metody do volající metody. |
Funkčnost | |
Při použití klíčového slova out mohou být data předána z volající metody do volané metody. Ale tato data jsou vyřazena. Používá se k předání výsledku volající metodě z volané metody. | Při použití klíčového slova ref jsou data předávána z volající metody volané metodě a manipulovaná data jsou předávána zpět volající metodě. |
Předávání dat | |
Při použití klíčového slova out jsou data předávána jedním způsobem, který je volanou metodou volající metodě. | Při použití klíčového slova ref se data předávají dvěma způsoby, a to od volání metody k volané metodě a od volané metody k metodě volání. |
Shrnutí – out vs. ref v C
Při vyvolání metody může být nutné předat hodnoty do metody a získat zpět výsledky z metody. C má různé parametry, jak toho dosáhnout. Parametry value se používají pro předávání parametrů do metody hodnotou. Referenční parametry se používají k předávání parametrů metodě odkazem. Výstupní parametry se používají k předání výsledku zpět z metody. V C se klíčové slovo out používá pro výstupní parametry a klíčové slovo ref se používá k odkazování na parametry. Rozdíl mezi out a ref v C je ten, že out je klíčové slovo používané k odkazování na výstupní parametr, který se používá k předávání výsledků z volané metody do volající metody, zatímco ref je klíčové slovo k odkazování na referenční parametr, který se používá k předávání dat z volání metody na volanou metodu a přijímání dat z volané metody na volání metody.
Stáhněte si PDF out vs ref v C
Verzi tohoto článku si můžete stáhnout ve formátu PDF a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde: Rozdíl mezi Out a Ref v C