C# (произносится си-шарп) — объектно-ориентированный язык программирования, пригодный для решения широкого круга задач. Данный учебник ориентирован на обучение основам программирования на C#. За основу взята английская версия викиучебника. По мере готовности перевода будет добавляться информация из сторонних источников.

Введение

править

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).

Вступление
Краткое описание C# и введение в эту викикнигу.
Введение в C#
Создадим первую программу и узнаем, где найти необходимые инструменты.
Соглашения по именованию
Краткое описание соглашений по именованию, принятых в C#.
Синтаксис
Описание основ синтаксиса.
Переменные
Объекты, используемые для хранения различных форм данных.
Операторы
Обобщает операторы, похожие на '+' и имеющиеся в C#.
Структуры данныx (Data structures)
Перечисления, структуры и т.д.
Control statements
Циклы, условия и многое другое. Контролируется как поток программы.
Исключения (Exceptions)
Ответы на ошибки, которые могут возникнуть.

Классы

править
Пространства имён (Namespaces)
(Giving your code its own space to live in.) (namespace) Предоставляет вашему коду его собственное "место для жизни", внутри которого классы знают о существовании друг друга и могут взаимодействовать в зависимости от модификаторов доступа.
Классы (Classes)
(The blueprints of objects that describes how they should work.) "Класс" - является подобием чертежа (или схемы) для объекта, в котором описывается как должен действовать объект.
Объекты (Objects)
Основа любого объектно ориентированного языка.
Инкапсуляция и модификаторы доступа
Explains protection of object states by encapsulation.

Модификаторы доступа

править

public - означает свободный доступ. Позволяет получать доступ к внутренним полям, методам, свойствам класса вне его описания.
private - означает доступ только для других членов одного класса. Класс можно пометить закрытым только если он находится внутри другого класса, тогда доступ к нему будет для только внешнего класса.
protected - защищенный доступ, означает доступность только для производных классов.
internal - означает доступность для других классов в сборке.
sealed - означает, что от данного класса нельзя наследовать(ставится после другого модификатора доступа)

Продвинутые концепты

править
Inheritance
Re-using existing code to improve or specialize the functionality of an object.
Интерфейсы
Define a template, on which to base sub-classes.
Делегаты и События
Learn about delegates, anonymous delegates, lambda expressions, and events.
Абстрактные классы (Abstract classes)
Build partially implemented classes.
Partial classes
Split a class over several files to allow multiple users to develop, but also to stop code generators interfering with source code.
Generics
Allow commonly used collections and classes to appear to have specialization for your custom class.
Методы расширения
Расширение функциональности существующих типов.
Время жизни объектов
Learn about the lifetime of objects, where they are allocated and learn about garbage collection.
Паттерны разработки
Узнайте о основных паттернах\методиках разработки, для уменьшения времени разработки и повышения качества кода.

.NET Framework

править
.NET Framework Overview
An overview of the .NET class library used in C#.
Console Programming
Ввод и вывод используя консоль.
Windows Forms
Программирование GUI с использованием Windows Forms.
Windows Presentation Foundation
Программирование GUI с использованием Windows Presentation Foundation.
Collections
Effectively manage (add, remove, find, iterate, etc.) large sets of data.
Threading
Learn how to run code concurrently and how to synchronize code.
Marshalling
Communicating with unmanaged code


C# Ключевые слова
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach
goto if implicit in int
interface internal is lock long
namespace new null object operator
out override params private protected
public readonly ref return sbyte
sealed short sizeof stackalloc
static string struct switch this
throw true try typeof uint
ulong unchecked unsafe ushort using
var virtual void volatile while
C# Специальные идентификаторы
add alias get global partial
remove set value where yield