Stačí se podívat napříč .NET Frameworkem, tam je to k vidění plus mínus na místech, kde se to má používat. Např. metoda int.Parse bere jako parametr string a vrací přes klasické return číslo int. Pokud daný řetězec není číslo, tak vyhodí výjimku. Existuje ale i metoda int.TryParse, která nehází výjimku, ale vrací True/False, jestli se ten text dá převést na číslo nebo ne. A protože ona vlastně potřebuje vráti dvě hodnoty (jestli se to povedlo, a případně číselnou hodnotu), tak tu číselnou hodnotu vrací přes parametr předávaný referencí. V C# to volání vypadá asi takto:
int vysledek;
if (int.TryParse("123456", out vysledek))
{
// podařilo se naparsovat, výsledná hodnota je v proměnné vysledek
}
else
{
// zadaný text není číslo
}
Ve většině případů stačí jedna návratová hodnota. Když jich ale ptořebujete víc a nechcete vracet objekt (třeba u takovéhoto příkladu by to bylo zbytečné), můžete použít předávání referencí (tedy ref nebo out, rozdíl je akorát v tom, že když použijete ref, proměnná musí být inicializovaná - tedy musel byste do ní před zavoláním té funkce TryParse něco přiřadit; out tohle nevyžaduje).
|