Полное руководство по основам языка C#

Это подробное руководство по основам языка C#, включающее примеры программ, которые демонстрируют различные концепции программирования на C#.

Назад

Первая программа на C#

Каждая программа на C# начинается с класса с методом Main:


using System;

class Program {
    static void Main() {
        Console.WriteLine("Hello, World!");
    }
}
        

Типы данных

Основные типы данных в C#:

Арифметические операции

Пример использования арифметических операций в C#:


using System;

class ArithmeticOperations {
    static void Main() {
        int a = 10, b = 20;
        int sum = a + b;
        int diff = b - a;
        int prod = a * b;
        int div = b / a;
        int mod = b % a;

        Console.WriteLine("Sum: " + sum);
        Console.WriteLine("Difference: " + diff);
        Console.WriteLine("Product: " + prod);
        Console.WriteLine("Division: " + div);
        Console.WriteLine("Modulus: " + mod);
    }
}
        

Ввод/Вывод

Ввод и вывод данных с использованием Console.ReadLine и Console.WriteLine:


using System;

class InputOutput {
    static void Main() {
        Console.Write("Enter an integer: ");
        int num = int.Parse(Console.ReadLine());
        Console.WriteLine("You entered: " + num);
    }
}
        

Условные операторы

Пример использования оператора if-else:


using System;

class ConditionalOperators {
    static void Main() {
        Console.Write("Enter an integer: ");
        int num = int.Parse(Console.ReadLine());

        if (num > 0) {
            Console.WriteLine("The number is positive.");
        } else if (num < 0) {
            Console.WriteLine("The number is negative.");
        } else {
            Console.WriteLine("The number is zero.");
        }
    }
}
        

Циклы

Пример цикла while:


using System;

class WhileLoop {
    static void Main() {
        int i = 0;

        while (i < 5) {
            Console.WriteLine("i = " + i);
            i++;
        }
    }
}
        

Массивы

Пример работы с массивами:


using System;

class Arrays {
    static void Main() {
        int[] arr = {1, 2, 3, 4, 5};

        for (int i = 0; i < arr.Length; i++) {
            Console.WriteLine("arr[" + i + "] = " + arr[i]);
        }
    }
}
        

Методы

Пример создания и использования метода:


using System;

class Methods {
    static void Greet() {
        Console.WriteLine("Hello from the method!");
    }

    static void Main() {
        Greet();
    }
}
        

Классы и объекты

Пример создания и использования классов:


using System;

class Rectangle {
    private double width;
    private double height;

    public Rectangle(double w, double h) {
        width = w;
        height = h;
    }

    public double Area() {
        return width * height;
    }

    public void Display() {
        Console.WriteLine("Width: " + width + ", Height: " + height + ", Area: " + Area());
    }

    static void Main() {
        Rectangle rect = new Rectangle(5.0, 3.0);
        rect.Display();
    }
}
        

Наследование

Пример использования наследования в C#:


using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Dog barks.");
    }

    static void Main() {
        Animal animal = new Dog();
        animal.Speak();
    }
}
        

Работа с указателями

В C# нет указателей в традиционном смысле, но можно работать с ссылками на объекты:


using System;

class Pointers {
    static void Main() {
        int num = 10;
        int refNum = num;

        Console.WriteLine("Value of num: " + num);
        Console.WriteLine("Value via reference: " + refNum);

        refNum = 20;
        Console.WriteLine("New value of num: " + num);
    }
}
        

Динамическое выделение памяти

В C# управление памятью осуществляется автоматически сборщиком мусора, но вот пример создания объекта:


using System;

class MemoryAllocation {
    static void Main() {
        int num = new int();
        num = 10;
        Console.WriteLine("Value: " + num);
    }
}
        

Работа с коллекциями

Пример работы с коллекциями в C#:


using System;
using System.Collections.Generic;

class Collections {
    static void Main() {
        List list = new List { "Hello", "World" };

        foreach (string item in list) {
            Console.WriteLine(item);
        }
    }
}
        

Обработка исключений

Пример обработки исключений:


using System;

class ExceptionHandling {
    static int Divide(int a, int b) {
        if (b == 0) {
            throw new DivideByZeroException("Division by zero");
        }
        return a / b;
    }

    static void Main() {
        try {
            Console.WriteLine("Result: " + Divide(10, 2));
            Console.WriteLine("Result: " + Divide(10, 0));
        } catch (DivideByZeroException e) {
            Console.WriteLine("Error: " + e.Message);
        }
    }
}
        

Работа с файлами

Пример работы с файлами в C#:


using System;
using System.IO;

class FileHandling {
    static void Main() {
        try {
            File.WriteAllText("example.txt", "Hello, file!");
        } catch (IOException e) {
            Console.WriteLine("Error writing to file: " + e.Message);
        }

        try {
            string[] lines = File.ReadAllLines("example.txt");
            foreach (string line in lines) {
                Console.WriteLine(line);
            }
        } catch (IOException e) {
            Console.WriteLine("Error reading from file: " + e.Message);
        }
    }
}