Введение в функции в C#
Дэвид Болтон — разработчик программного обеспечения, работавший в нескольких крупных фирмах, включая Morgan Stanley, PwC, BAE Systems и LCH.
В C# функция — это способ упаковки кода, который что-то делает, а затем возвращает значение. В отличие от C, C++ и некоторых других языков, функции не существуют сами по себе. Они являются частью объектно-ориентированного подхода к программированию.
Например, программа для управления электронными таблицами может включать функцию sum() как часть объекта.
В C# функцию можно назвать функцией-членом — она является членом класса, — но эта терминология осталась от C++. Обычное название для него — метод.
Метод экземпляра
Существует два типа методов: метод экземпляра и статический метод. В этом введении рассматривается метод экземпляра.
Пример ниже определяет простой класс и вызывает его Тест. Этот пример представляет собой простую консольную программу, поэтому это разрешено. Обычно первым классом, определенным в файле C#, должен быть класс формы.
Можно иметь пустой класс, такой как этот класс Test , но это бесполезно. Хотя он выглядит пустым, он, как и все классы C#, наследуется от Object, который его содержит, и включает в себя конструктор по умолчанию в основной программе.
вар т = новый тест();
Этот код работает, но при запуске он ничего не делает, кроме создания экземпляра. т пустого тестового класса. Код ниже добавляет функцию, метод, который выводит слово «Hello».
с помощью системы;
пространство имен funcex1
класс Тест
публичная пустота SayHello ()
Console.WriteLine("Привет") ;
>
>
программа класса
статическая пустота Main (string [] args)
вар т = новый тест () ;
t.Привет() ;
Консоль.ReadKey() ;
>
>
>
Этот пример кода включает Консоль.ReadKey(), поэтому при запуске он отображает окно консоли и ожидает нажатия клавиш, таких как Enter, Space или Return (а не клавиш Shift, Alt или Ctrl). Без него он бы открыл окно консоли, вывел бы «Hello», а затем закрыл бы все в мгновение ока.
Функция Скажи привет это настолько простая функция, насколько это возможно. Это общедоступная функция, что означает, что функция видна снаружи класса.
Если убрать слово публичный и попробуйте скомпилировать код, он завершается с ошибкой компиляции «funcex1.test.SayHello ()» недоступен из-за его уровня защиты». Если вы добавите слово «частный» вместо слова «общедоступный» и перекомпилируете, вы получите ту же ошибку компиляции. Просто измените его обратно на «общедоступный».
Слово пустота в функции означает, что функция не возвращает никаких значений.
Типичные характеристики определения функции
- Уровень доступа: общедоступный, частный и некоторые другие
- Возвращаемое значение>: void или любой тип, например int
- Имя метода: SayHello
- Любые параметры метода: пока нет. Они определены в скобках () после имени метода
Код для определения другой функции MyAge():
общедоступный интервал MyAge()
вернуть 53;
>
Добавьте это сразу после Скажи привет() метод в первом примере и добавьте эти две строки перед Консоль.ReadKey().
var age = t.MyAge();
Console.WriteLine("Дэвиду много лет",возраст);
Запуск программы теперь выводит это:
Привет
Давиду 53 года,
var age = t.MyAge(); вызов метода вернул значение 53. Это не самая полезная функция. Более полезным примером является функция Sum электронной таблицы с массивом целых чисел, начальным индексом и количеством суммируемых значений.
Это функция:
публичная сумма с плавающей запятой (значения int [], int startindex, int endindex)
общая сумма = 0;
for (var index=startindex; indextotal += values[index];
>
общая сумма возврата;
>
Вот три варианта использования. Это код, который нужно добавить в Main() и вызвать для проверки функции Sum.
переменные значения = новый int[10] ;
Console.WriteLine(t.Sum(значения,0,2)); // Должно быть 6
Console.WriteLine(t.Sum(значения,0,9)); // должно быть 55
Console.WriteLine(t.Sum(значения,9,9)); // должно быть 10, так как 9-е значение равно 10
Цикл For суммирует значения в диапазоне от startindex до endindex, поэтому для startindex = 0 и endindex = 2 это сумма 1 + 2 + 3 = 6. Тогда как для 9,9 он просто добавляет одно значение[ 9] = 10.
Внутри функции локальная переменная total инициализируется значением 0, а затем к ней добавляются соответствующие части значений массива.