В C # функция представляет собой способ упаковки кода, который что-то делает, а затем возвращает значение. В отличие от C, C ++ и некоторые другие языки, функции не существуют сами по себе. Они являются частью объектно-ориентированный подход к программированию.
Например, программа для управления электронными таблицами может включать функцию sum () как часть объекта.
В C # функцию можно назвать функцией-членом - она является членом класса - но эта терминология осталась от C ++. Обычное название для этого метода.
Метод экземпляра
Есть два типа методов: метод экземпляра и статический метод. Это введение охватывает метод экземпляра.
Пример ниже определяет простой класс и вызывает его Тестовое задание. Этот пример - простая консольная программа, так что это разрешено. Обычно первый класс, определенный в файле C #, должен быть классом формы.
Можно иметь такой пустой класс тест класса {}, но это не полезно. Хотя он выглядит пустым, он - как и все классы C # - наследуется от объекта, который его содержит, и включает в себя значение по умолчанию конструктор в основной программе.
var t = new Test ();
Этот код работает, но он не будет ничего делать при запуске, кроме как создать экземпляр T пустого тестового класса. Приведенный ниже код добавляет функцию, метод, который выводит слово «Hello».
используя Систему;
пространство имен funcex1
{
тест класса
{
публичный void SayHello ()
{
Приставка. WriteLine («Привет»);
}
}
Программа класса
{
static void Main (строка [] args)
{
var t = new Test ();
т. Скажи привет() ;
Приставка. ReadKey ();
}
}
}
Этот пример кода включает Приставка. ReadKey ()поэтому, когда он запускается, он отображает окно консоли и ожидает ввода ключа, такого как Enter, Пробел или Return (не клавиши Shift, Alt или Ctrl). Без этого он откроет окно консоли, выведет «Hello», а затем закроет все в мгновение ока.
Функция Скажи привет примерно такая же простая функция, как вы можете иметь. Это публичная функция, что означает, что функция видна снаружи класса.
Если вы удалите слово общественности и попытаться компиляции код, он завершается с ошибкой компиляции "funcex1.test. SayHello () 'недоступен из-за уровня защиты. "Если вы добавите слово" private ", где было слово public, и перекомпилируете, вы получите ту же ошибку компиляции. Просто измените его обратно на «общедоступный».
Слово недействительным в функции означает, что функция не возвращает никаких значений.
Типичные характеристики определения функций
- Уровень доступа: публичный, частный плюс некоторые другие
- Возвращаемое значение>: void или любой тип, например int
- Имя метода: SayHello
- Любые параметры метода: пока нет. Они определены в скобках () после имени метода
Код для определения другой функции, MyAge ():
public int MyAge ()
{
возврат 53;
}
Добавьте это сразу после Скажи привет() метод в первом примере и добавьте эти две строки перед Приставка. ReadKey ().
вар возраст = т. Мой возраст();
Приставка. WriteLine («Дэвиду {0} лет», возраст);
Запуск программы теперь выводит это:
Здравствуйте
Давиду 53 года,
вар возраст = т. Мой возраст(); вызов метода вернул значение 53. Это не самая полезная функция. Более полезным примером является функция Sum электронной таблицы с массивом Интс, начальный индекс и количество значений для суммирования.
Это функция:
общая сумма с плавающей запятой (значения int [], int startindex, int endindex)
{
общая сумма = 0;
for (var index = startindex; Индекс <= ENDINDEX; Индекс ++)
{
итого + = значения [индекс];
}
возврат итога;
}
Вот три варианта использования. Это код, который нужно добавить в Main () и вызвать для проверки функции Sum.
значения var = new int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Приставка. WriteLine (т. Сумма (значения 0,2)); // должно быть 6
Приставка. WriteLine (т. Сумма (значения 0,9)); // должно быть 55
Приставка. WriteLine (т. Сумма (значения 9,9)); // должно быть 10, поскольку 9-е значение равно 10
Для петля складывает значения в диапазоне startindex к endindex, поэтому для startindex = 0 и endindex = 2 это сумма 1 + 2 + 3 = 6. Принимая во внимание, что для 9,9 он просто добавляет одно значение [9] = 10.
Внутри функции локальная переменная total инициализируется равной 0, а затем добавляются соответствующие части значений массива.