Ключевое слово out означает, что передача методу переменной происходит по ссылке.
При передаче переменной методу по ссылке, происходит реальная передача значения переменной, поэтому, значение после выполнения метода изменяется.
В отличие от параметра ref, при параметре out переменные могут быть не инициализированы.
При вызове метода, ключевое слово out нужно указывать явно.
С помощью параметра out метод, может принимать несколько аргументов, может возвращать несколько значений.
При передаче переменной методу по ссылке, происходит реальная передача значения переменной, поэтому, значение после выполнения метода изменяется.
В отличие от параметра ref, при параметре out переменные могут быть не инициализированы.
При вызове метода, ключевое слово out нужно указывать явно.
С помощью параметра out метод, может принимать несколько аргументов, может возвращать несколько значений.
Main.cs
using
System;
class
One {
-
public
decimal
val0;
-
public
decimal
val1;
-
public
decimal
val2;
-
//несколько аргументов передаются по значению
-
//метод присваивает значения полям
-
public
void
Fun(
out
decimal
arg0,
out
decimal
arg1,
out
decimal
arg2) {
-
arg0 = 5;
-
arg1 = 10;
-
arg2 = 15;
-
}
}
class
Program {
-
public
static
int
Main() {
-
One O =
new
One();
-
//при вызове метода, ключевое слово out нужно указывать явно
-
O.Fun(
out
O.val0,
out
O.val1,
out
O.val2);
-
Console.WriteLine(O.val0);
-
Console.WriteLine(O.val1);
-
Console.WriteLine(O.val2);
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
class
One {
-
public
decimal
val0;
-
public
decimal
val1;
-
public
decimal
val2;
-
//несколько аргументов передаются по значению
-
//метод присваивает значения полям
-
public
void
Fun(
out
decimal
arg0,
out
decimal
arg1,
out
decimal
arg2) {
-
arg0 = 5;
-
arg1 = 10;
-
arg2 = 15;
-
}
}
class
Program {
-
public
static
int
Main() {
-
One O =
new
One();
-
//при вызове метода, ключевое слово out нужно указывать явно
-
O.Fun(
out
O.val0,
out
O.val1,
out
O.val2);
-
Console.WriteLine(O.val0);
-
Console.WriteLine(O.val1);
-
Console.WriteLine(O.val2);
-
Console.ReadKey();
-
return
0;
-
}
}
5
10
15
10
15