Итак, я новичок в C #, и мне трудно понять out
. В отличие от простого возврата чего-либо из функции
using System;
class ReturnTest
{
static double CalculateArea()
{
double r=5;
double area = r * r * Math.PI;
return area;
}
static void Main()
{
double output = CalculateArea();
Console.WriteLine("The area is {0:0.00}", output);
}
}
сравните с этим
using System;
class ReturnTest
{
static void CalculateArea(out double r)
{
r=5;
r= r * r * Math.PI;
}
static void Main()
{
double radius;
CalculateArea(out radius);
Console.WriteLine("The area is {0:0.00}",radius );
Console.ReadLine();
}
}
Первый - это то, как я обычно это делаю. Есть ли причина, по которой я могу использовать out
вместо простого оператора возврата? Я понимаю, что ref
допускает двустороннюю связь, и что я обычно не должен использовать ref
, если функция не делает что-то с переменной, которую я отправляю.
Однако есть ли разница между операторами out и return, как показано выше? Есть ли причина отдавать предпочтение тому или другому с точки зрения синтаксиса?
Dictionary.TryGetValue
иint.TryParse
и посмотрите, объясняют ли эти примеры полезностьout
. - person Kirk Woll   schedule 26.06.2012out
в основном используется, когда вам нужно вернуть несколько несвязанных значений из метода. Кроме того, он часто используется для имитации указателей при взаимодействии с машинным кодом через COM или p / invoke. - person dlev   schedule 26.06.2012ref
больше похож на ссылки C ++, чем наout
. - person Tudor   schedule 26.06.2012