C# Курс

C#: методы (функции)

Самоучитель Python 3, собранный из материалов данного сайта.Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Определение методов

using System;

class MathHelper {
    static int Add(int a, int b) {
        return a + b;
    }

    static double CircleArea(double r) {
        return Math.PI * r * r;
    }

    static void Main() {
        Console.WriteLine(Add(3, 4));        // 7
        Console.WriteLine(CircleArea(5.0));  // 78.539...
    }
}

Expression-bodied методы (C# 6+)

static int Square(int x) => x * x;
static string Greet(string name) => $"Привет, {name}!";

Console.WriteLine(Square(5));       // 25
Console.WriteLine(Greet("Алиса")); // Привет, Алиса!

Необязательные и именованные параметры

static void PrintInfo(string name, int age = 18, string country = "RU") {
    Console.WriteLine($"{name}, {age}, {country}");
}
PrintInfo("Алиса");                      // Алиса, 18, RU
PrintInfo("Боб", 25);                    // Боб, 25, RU
PrintInfo("Кэрол", country: "UK");       // Кэрол, 18, UK

Перегрузка методов

static int Multiply(int a, int b) => a * b;
static double Multiply(double a, double b) => a * b;
static int Multiply(int a, int b, int c) => a * b * c;

Multiply(2, 3);        // 6
Multiply(2.5, 3.0);    // 7.5
Multiply(2, 3, 4);     // 24

Рекурсия

static int Factorial(int n) {
    if (n <= 1) return 1;
    return n * Factorial(n - 1);
}
Console.WriteLine(Factorial(5)); // 120

out-параметры

static void Divide(int a, int b, out int quotient, out int remainder) {
    quotient = a / b;
    remainder = a % b;
}
Divide(17, 5, out int q, out int r);
Console.WriteLine($"{q} остаток {r}"); // 3 остаток 2