Введение в язык C# и .NET Framework

C# — элегантный, типобезопасный объектно-ориентированный язык, предназначенный для разработки разнообразных безопасных и мощных приложений, выполняемых в среде .NET Framework.С помощью языка C# можно создавать обычные приложения Windows, XML-веб-службы, распределенные компоненты, приложения "клиент-сервер", приложения баз данных и т. д.Visual C#, visual basic предоставляет расширенный редактор кода, удобные конструкторы интерфейса пользователя, интегрированный отладчик и многих других средств для облегчения разработки приложений на основе версии 4.0 языка C-# и .NET Framework версии 4.0.

ПримечаниеПримечание

При чтении документации Visual C# подразумевается, что пользователь обладает знаниями об основных принципах программирования.Абсолютным новичкам можно посоветовать версию Visual C#, экспресс-выпуск, которая доступна в Интернете.Для приобретения практических навыков программирования можно также воспользоваться преимуществами книг и ресурсов в Интернете, посвященных языку C#.

Язык C#

Синтаксис C# очень выразителен, но прост в изучении.Все, кто знаком с языками C, C++ или Java с легкостью узнают синтаксис с фигурными скобками, характерный для языка C#.Разработчики, знающие любой из этих языков, как правило, смогут добиться эффективной работы с языком C# за очень короткое время.Синтаксис C# делает проще то, что было сложно в C++, и обеспечивает мощные возможности, такие как типы значений Nullable, перечисления, делегаты, лямбда-выражения и прямой доступ к памяти, чего нет в Java.C# поддерживает универсальные методы и типы, обеспечивая более высокий уровень безопасности и производительности, а также итераторы, позволяющие при реализации коллекций классов определять собственное поведение итерации, которое может легко использоваться в клиентском коде.Выражения LINQ делают строго типизированный запрос очень удобной языковой конструкцией.

Как объектно-ориентированный язык, C# поддерживает понятия инкапсуляции, наследования и полиморфизма.Все переменные и методы, включая метод Main – точку входа приложения – инкапсулируются в определения классов.Класс может наследовать непосредственно из одного родительного класса, но может реализовывать любое число интерфейсов.Для методов, которые переопределяют виртуальные методы в родительском классе, необходимо ключевое слово override, чтобы исключить случайное повторное определение.В языке C# структура похожа на облегченный класс: это тип, распределяемый по стопкам, реализующий интерфейсы, но не поддерживающий наследование.

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

  • Инкапсулированные сигнатуры методов, называемые делегатами, которые поддерживают типобезопасные уведомления о событиях.

  • Свойства, выступающие в роли методов доступа для закрытых переменных-членов.

  • Атрибуты с декларативными метаданными о типах во время выполнения.

  • Встроенные комментарии XML-документации.

  • LINQ, предлагающий встроенные возможности запросов в различных источниках данных.

Если потребуется обеспечить взаимодействие с другим программным обеспечением Windows, таким как объекты COM или собственные библиотеки DLL Win32, в языке C# можно использовать процесс, который называется "Interop." Процесс Interop позволяет программам на C# выполнять практически любые действия, которые может выполнять исходное приложение на C++.Язык C# поддерживает даже указатели и понятие "небезопасного" кода для тех случаев, когда прямой доступ к памяти имеет крайне важное значение.

Процесс построения C# по сравнению с C и C++ прост и является более гибким, чем в Java.Нет отдельных файлов заголовка, а методы и типы не требуется объявлять в определенном порядке.В исходном файле C# может быть определено любое число классов, структур, интерфейсов и событий.

Следующие ресурсы по языку C# являются дополнительными:

Архитектура платформы .NET Framework

Программа на языке C# выполняется в среде .NET Framework – интегрированном компоненте Windows, содержащем виртуальную систему выполнения (среда CLR) и унифицированный набор библиотек классов.Среда CLR представляет собой коммерческую реализацию Майкрософт инфраструктуры CLI (common language infrastructure), международного стандарта, основы сред выполнения и разработки с тесным взаимодействием языков и библиотек.

Исходный код, написанный на языке C#, компилируется в промежуточный язык (IL) в соответствии со спецификацией CLI.Код IL и ресурсы, такие как растровые изображения и строки, хранятся на диске в исполняемом файле, называемом сборкой, с расширением EXE или DLL в большинстве случаев.Сборка содержит манифест со сведениями о типах сборки, версии, языке и региональных параметрах и требованиях безопасности.

При выполнении программы на C# сборка загружается в среду CLR в зависимости от сведений в манифесте.Далее, если требования безопасности соблюдены, среда CLR выполняет JIT-компиляцию для преобразования кода IL в инструкции машинного кода.Среда CLR также предоставляет другие службы, относящиеся к автоматическому сбору мусора, обработке исключений и управлению ресурсами.Код, выполняемый средой CLR, иногда называют "управляемым кодом" в противопоставление "неуправляемому коду", который компилируется в машинный код, предназначенный для определенной системы.Далее показаны отношения во время компиляции и время выполнения между файлами с исходным кодом C#, библиотеками классов .NET Framework, сборками и средой CLR.

От исходного кода на C# к машинному выполнению

Взаимодействие между языками является ключевой особенностью .NET Framework.Поскольку код на промежуточном языке (IL), создаваемый компилятором C#, соответствует спецификации CTS, код IL на основе C# может взаимодействовать с кодом, создаваемым версиями языков Visual Basic, Visual C++, Visual J# платформы .NET Framework и еще более чем 20 CTS-совместимых языков.В одной сборке может быть несколько модулей, написанных на разных языках платформы .NET Framework, и типы могут ссылаться друг на друга, как если бы они были написаны на одном языке.

Помимо служб времени выполнения, в .NET Framework также имеется обширная библиотека, состоящая из более чем 4000 классов, организованных по пространствам имен, которые обеспечивают разнообразные полезные функции для любых действий, начиная от ввода и вывода файлов для управлением строками для разбивки XML, и заканчивая элементами управления Windows Forms.В обычном приложении на языке C# библиотека классов .NET Framework интенсивно используется для "устройства" кода.

Дополнительные сведения о платформе .NET Framework см. в разделе Overview of the Microsoft .NET Framework.

Главы в популярных книгах

C# Language Fundamentals в книге Learning C# 3.0: Master the fundamentals of C# 3.0

C# and .NET Programming в книге Learning C# 3.0: Master the fundamentals of C# 3.0

Вставка C# в Начало Visual C#, visual basic 2010

Visual Studio 2008 and C# Express 2008 в книге Learning C# 3.0: Master the fundamentals of C# 3.0

См. также

Другие ресурсы

Visual C#

Учебные руководства для начинающих