0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
   class Program
   {
        static void Main(string[] args)
        {
            int r = Mul2(40, 54);
            Console.WriteLine();
            Console.ReadLine();
        }
        static int Mul2(int someInt, int someInt2)
        {
            Console.WriteLine("Method has become to work");
            Console.WriteLine(someInt);
            Console.WriteLine(someInt2);
            int Result = (someInt * someInt2);
            Result = Result * Result;
            return Result;
            Console.WriteLine("Method end!");
        }
    }
}
Grundy
  • 81,538
  • 1
    а что конкретно непонятно? – Grundy Nov 08 '16 at 09:23
  • Как происходит присваивание переменных, обработка самого кода от начала до конца программы (просто я недавно в С#). – user7130621 Nov 08 '16 at 09:28
  • @user7130621: Вам, очевидно, сюда: http://ru.stackoverflow.com/q/416584/10105 – VladD Nov 08 '16 at 09:29
  • Присваивание происходит при помощи операции =. Обработка кода идёт построчно. – PinkTux Nov 08 '16 at 09:29
  • someInt получило значение 40, someInt2 инициализировалось как 54. Затем вы подсчитали result путем перемножения 40 и 54, затем перемножили result само на себя и функция вернула это значение, которая получила переменная r в Main. – Dmytro Nov 08 '16 at 09:29

3 Answers3

2

В методе main:

1)Переменной r вы возвращаете результат работы метода Mul2.
2)Ничего не записываете на консоль методом Console.WriteLine();
3)Ожидаете ввода строки.

В методе Mul2:

1)Сообщается, что метод начал работу, выводится на экран первый и второй параметры;
2)В новую переменную Result записываем перемножение первого и второго числа;
3)Дальше Result присваивается перемножение самой на себя;
4)Возвращаем значения переменной Result.

Выскакивает ошибка (или предупреждение?), что-то похожее на statement not reachable



Ошибка (или предупреждение?) из-за того, что метод завершил уже свою работу (оператор return "завершает" работу метода), а вы пытаетесь еще что-то там делать (в данном случае написать в консоль, что метод завершил работу).


Дабы метод заработал и строка Console.WriteLine() стала "досягаемой" поднимите ее просто над оператором return.

Ep1demic
  • 2,995
1

Запускается программа и автоматически вызывается метод Main, который объявляет целочисленную переменную r и присваивает ей результат работы метода Mul2. Т.е. из Main вызываем Mul2 с параметрами 40 и 54, и результат записываем в переменную r. При вызове метода Mul2выводится сообщение что начали работать, выводим первую переданную переменную (40) и вторую (54).

В целочисленную переменную Result записываем произведение 40 х 54 (3780).

После этого в переменную Result записываем предыдущее значение этой же переменной, умноженное само на себя (возводим в квадрат). Т.е. Result будет равен Result = 3780 х 3780 = 14288400.

Теперь из метода Mul2 возвращаем значение это 14288400 в вызвавший его метод 'Main' где значение 14288400 присваевается переменной r.

Теперь выводим пустую строку, и жмем нажатия Enter. Завершаем работу программы.

Вывод строки "Method end!" выполнен не будет, так как команда для вывода этого текста написана после оператора return, который мало того, что возвращает результат в метод Main, так еще и завершит работу метода 'Mul2'.

BlackWitcher
  • 2,756
0

someInt получило значение 40, someInt2 - 54. Затем вы подсчитали result путем перемножения 40 и 54, затем перемножили result само на себя и функция вернула это значение, которая получила переменная r в Main.

Dmytro
  • 515