# Создание калькулятора на методах ref,out,return

**URL:** <https://forum.itvdn.com/t/sozdanie-kalkulyatora-na-metodah-ref-out-return/3586>\
**Category:** C# Домашние задания\
**Created:** [26.11.2020 20:25:24 UTC](https://forum.itvdn.com/t/sozdanie-kalkulyatora-na-metodah-ref-out-return/3586 "2020-11-26T20:25:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Roger](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/r/c0e974/32.png) [@Roger](https://forum.itvdn.com/u/Roger)\
**Post date:** [26.11.2020 20:25:24 UTC](https://forum.itvdn.com/t/sozdanie-kalkulyatora-na-metodah-ref-out-return/3586/1 "2020-11-26T20:25:24Z")

</div>

Мне нужно сделать программу, в которую нужно добавить операции +, -, \*, /, %,  
возведение в заданную степень, нахождение корня заданного уровня. Для \*, /, %, -значения через out, для +, -, - через ref.А для степени и корня значения получить через return.  
Я пока не совсем освоил эти методы. Немогли бы вы мне помочь с этим?

---

<div class="post-metadata">

**Author:** ![dietmar](https://forum.itvdn.com/user_avatar/forum.itvdn.com/dietmar/32/339_2.png) [@dietmar](https://forum.itvdn.com/u/dietmar)\
**Post date:** [08.12.2020 10:09:36 UTC](https://forum.itvdn.com/t/sozdanie-kalkulyatora-na-metodah-ref-out-return/3586/2 "2020-12-08T10:09:36Z")

</div>

А какой у вас именно вопрос?  
Если делать через out то приблизительно будет так выглядеть

void Mul(int a, int b, out res)  
{  
res = a \* b;  
}

а в методе Main  
int r;  
Mul(10, 20, out r);  
так как r из-за ключевого слова вы передали по ссылке, то по завершению работы метода в ней появиться значение, которое было присвоено в методе.

Если делать через ref то обязательно переменная перед передачей в метод должна быть проинициализирована, так как ref не гарантирует что в методе будет произведена запись по указаному адресу.
