Ключевое слово ref означает, что передача методу переменной происходит по ссылке.
При передаче переменной методу по ссылке, происходит реальная передача значения переменной, поэтому, значение после выполнения метода изменяется.
Переменной, передаваемой через параметр, должно быть сначала присвоено значение, т.е. переменная должна быть инициализирована.
При вызове метода, ключевое слово ref нужно указывать явно.
Метод, имеющий в параметре ключевое слово ref, не может быть перегружен.
При передаче переменной методу по ссылке, происходит реальная передача значения переменной, поэтому, значение после выполнения метода изменяется.
Переменной, передаваемой через параметр, должно быть сначала присвоено значение, т.е. переменная должна быть инициализирована.
При вызове метода, ключевое слово ref нужно указывать явно.
Метод, имеющий в параметре ключевое слово ref, не может быть перегружен.
Main.cs
usingSystem;classOne {-
publicdecimalval; -
publicOne(decimalarg) { -
val = arg; -
} -
//аргумент передается по значению -
publicvoidFun1(decimalarg) { -
arg*=2; -
} -
//аргумент передается по ссылке -
publicvoidFun2(refdecimalarg) { -
arg*=2; -
} }classProgram {-
publicstaticintMain() { -
One O =newOne(10); -
Console.WriteLine("начальное значение поля : {0}", O.val); -
O.Fun1(O.val); -
Console.WriteLine("начальное значение поля : {0}", O.val); -
//при вызове метода, ключевое слово ref нужно указывать явно -
O.Fun2(refO.val); -
Console.WriteLine("начальное значение поля : {0}", O.val); -
Console.ReadKey(); -
return0; -
} }
usingSystem;classOne {-
publicdecimalval; -
publicOne(decimalarg) { -
val = arg; -
} -
//аргумент передается по значению -
publicvoidFun1(decimalarg) { -
arg*=2; -
} -
//аргумент передается по ссылке -
publicvoidFun2(refdecimalarg) { -
arg*=2; -
} }classProgram {-
publicstaticintMain() { -
One O =newOne(10); -
Console.WriteLine("начальное значение поля : {0}", O.val); -
O.Fun1(O.val); -
Console.WriteLine("начальное значение поля : {0}", O.val); -
//при вызове метода, ключевое слово ref нужно указывать явно -
O.Fun2(refO.val); -
Console.WriteLine("начальное значение поля : {0}", O.val); -
Console.ReadKey(); -
return0; -
} }
начальное значение поля : 10
начальное значение поля : 10
начальное значение поля : 20
начальное значение поля : 10
начальное значение поля : 20