Синтаксис объявления методов соответствует тому, что вы могли ожидать от С-подобного языка, и почти идентичен синтаксису С++ и Java. Основное синтаксическое отличие от С++ заключается в том, что в С# каждый метод отдельно объявлен как общедоступный или приватный.
Невозможно использовать блоки public: для группировки нескольких определений методов. К тому же все методы С# объявляются и определяются в определении класса. В С# нет возможности отделить реализацию метода, как это делается в С++.
На С# определение метода состоит из любых модификаторов (таких как спецификация доступности), типа возвращаемого значения, за которым следует имя метода, затем — список аргументов, заключенный в скобки, и далее — тело метода, заключенное в фигурные скобки:
[модификаторы] тип_возврата ИмяМетода ( [параметры] ){// Тело метода }
Каждый параметр состоит из имени типа параметра и имени, по которому к нему можно обратиться в теле метода. Также, если метод возвращает значение, то оператор возврата должен быть использован вместе с возвращаемым значением для указания точки выхода. Например:
public bool IsSquare(Rectangle rect) {
return (rect.Height == rect.Width);}
Этот код использует один из базовых классов .NET, System. Drawing.Rectangle, представляющий прямоугольники.
Если метод не возвращает ничего, то в качестве типа возврата указывается void, поскольку вообще опустить тип возврата невозможно. Если же он не принимает аргументов, то все равно после имени метода необходимо указать пустые скобки (как в случае метода Main ()). При этом включать оператор возврата не обязательно — метод возвращает управление автоматически по достижении закрывающей фигурной скобки. Заметим, что метод может содержать столько операторов возврата, сколько требуется:
public bool IsPositive(int value) {if (value < 0) return false;return true;}