Привет всем
Я решил начать цикл статей на тему обучения программирования в .NET, а именно на C#. Я не претендую на авторство всего, что здесь и далее будет написано, я всего лишь хочу дать знания тем, кто этого желает.
На Хабре много раз могли заметить мои комментарии по поводу того, что я очень хотел бы обучать людей, но никак не мог придумать как это сделать. После цикла статей MaxElc я подумал, что тоже могу паралельно с ним начать писать.
Пожалуй начнём!
Архитектура .NET
.NET — это среда исполнения или платформа. Она располагается между кодом и Windows, позволяя предоставлять нужные службы. Платформа .NET состоит из двух основных компонентов. Это Common Language Runtime и .NET Framework Class Library.
Common Language Runtime (сокращенно CLR) можно назвать «двигателем» платформы .NET. CLR занимается управлением памятью, компиляцией и выполнением кода, работой с потоками управления, обеспечением безопасности и т.п.
.NET Framework Class Library — это набор классов на все случаи жизни.
Итак, чтобы понять, как работает .NET, рассмотрим её составные части:
Общая система типов (Common Type System, сокращенно CTS) — охватывает большую часть типов, встречающихся в распространенных языках программирования.
Виртуальная система исполнения (Virtual Execution System, сокращенно VES) — отвечает за загрузку и выполнение программ, написанных для CLI.
Система метаданных (Metadata System) — предназначена для описания типов, хранится в независимом от конкретного языка программирования.
Общий промежуточный язык (Common Intermediate Language, сокращенно CIL) — независимый от платформы объектно-ориентированный байт-код, выступающий в роли целевого языка для любого поддерживающего CLI компилятора.
Общая спецификация языков (Common Language Specification, сокращенно CLS) — соглашение между разработчиками языков программирования и разработчиками библиотек классов, в котором определено подмножество CTS и набор правил.
Одной из основных идей .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в Delphi.
Я не буду вдаваться в подробности и перепечатывать учебники. Для тех, кто желает более подробно узнать про .NET я оставлю внизу ссылки на необходимые ресурсы. Просто весь смысл сводится к тому, что .NET нам помогает! И это очень хорошо. =)
Основы C#
Для удобного исполнения примеров рекомендую вам скачать бесплатный Visual Studio 2008 Express, а у кого траффик не казенный, то можете использовать #Develop — это OpenSource проект с открытым исходным кодом.
Начнём с немного боянного уже примера — Hello World!
Если вы используете Visual Studio или #Develop — создайте новый консольный проект. Для извращенцев 🙂 можно попробовать использовать csc.exe — это компилятор C#. Он входит в состав свободно распространяемой MS.NET SDK.
Для сборки в IDE выберите Build в меню Project, а используя csc.exe наберите в командной строке:
где TargetFile.exe — это выходной файл, а SourceFile.cs — файл, где вы набрали вышенаписанный код.
Давайте разберём код, который мы написали.
using подключает пространство имён System, которое включает в себя методы ввода/вывода и нужные типы.
class HelloWorld — объявили новый класс, который мы обозвали как HelloWorld. Чуть позже я вам расскажу про классы более подробнее, а пока вам надо понять, что любая программа на C# состоит из классов.
Далее идёт метод Main() — это дверь для компилятора. Свою работу он будет начинать отсюда. Метод Main() обязателен для любой программы и его имя должно писаться именно так. В C# регистр имеет значение ;).
Вот как выглядят методы. Сначала идёт модификатор, затем надо указать тип данных, которые он будет возвращать, имя самого метода, а в скобках параметры, которые он принимает. Про всё это вы узнаете из будущих статей, а пока просто попытайтесь запомнить.
Квадратные скобки обозначают необязательные параметры. Модификаторы используются для указания особенностей вызова метода, например, откуда он может быть вызван.
Наконец перейдём к самим операторам. У нас вызывается метод WriteLine() класса System.Console для вывода строки в консоли. Для выхода из метода применяется оператор return и так как это метод Main(), то происходит выход из программы. В заголовке метода Main() указан тип int, поэтому необходимо вернуть целое значение (в данном случае).
Важные ссылки
P.S. Я оставил эту статью логически незаконченой, т.к. завтра намериваюсь продолжить писать и опубликавать. Пишите в комментарии свою критику и вопросы. Надеюсь вам понравилось.
P.P.S. MaxElc! А вёдрами то интереснее =)
Знакомство с C#
Приветствуем вас в ознакомительном разделе руководств по C#. Занятия начинаются с интерактивного кода, который можно запускать в браузере. Прежде чем приступить к интерактивным урокам, вы можете ознакомиться с основами C#, просмотрев серию видеороликов «C# для начинающих».
В первых занятиях с помощью небольших фрагментов кода объясняются основные понятия языка C#. Вы изучите основы синтаксиса C# и научитесь работать с такими типами данных, как строки, числа и логические значения. Вся серия интерактивна, и уже через считанные минуты вы будете писать и запускать собственный код. Для первых занятий не требуются какие-либо знания в области программировании или опыт работы с языком C#.
Эти руководства можно проходить в разных средах. В них описываются одни и те же основные понятия. Различие в том, где именно вы будете работать.
- В браузере на платформе документации. В этом случае окно готового к запуску кода C# внедряется на страницы документации. Вы пишете и выполняете C# код в браузере.
- В среде Microsoft Learn. Эта схема обучения содержит несколько модулей для изучения основ C# .
- В Jupyter в проекте Binder. Вы можете поэкспериментировать с кодом C# в записной книжке Jupyter в проекте Binder.
- На локальном компьютере. После изучения кода в интерактивном режиме можно скачать пакет SDK для .NET и создавать программы на компьютере.
Все ознакомительные руководства, в которых используется пример приложения «Hello World», можно проходить в веб-браузере или в локальной среде разработки. В конце каждого руководства вам предлагается на выбор возможность пройти следующее занятие в браузере или на локальном компьютере. Чтобы настроить среду и продолжить изучение следующего руководства на компьютере, можно воспользоваться соответствующими ссылками.
Hello world
В руководстве Hello World вы создадите самую простую программу на C#. Вы ознакомитесь с типом string и способами работы с текстом. Можно также использовать схему обучения в Microsoft Learn или Jupyter в проекте Binder.
Числа в C#
Из руководства Числа в C# вы узнаете, как на компьютере хранятся числа и как выполнять вычисления с разными числовыми типами. Вы ознакомитесь с основами округления и научитесь выполнять математические вычисления с помощью C#. Это руководство можно изучить, используя локальный компьютер.
В этом руководстве предполагается, что вы уже прошли занятие Hello World.
Ветви и циклы
В руководстве Ветви и циклы представлены общие принципы организации ветвления кода в зависимости от значений, хранящихся в переменных. Вы узнаете, что такое поток управления, являющийся основой принятия решений и выбора различных действий в программах. Это руководство можно изучить, используя локальный компьютер.
В этом руководстве предполагается, что вы уже прошли занятия Hello World и Числа в C#.
Коллекция списков
Занятие Коллекция списков содержит обзор типа «Коллекция списков», в котором хранятся последовательности данных. Вы узнаете, как добавлять и удалять элементы, выполнять их поиск и сортировать списки. Вы ознакомитесь с различными типами списков. Это руководство можно изучить, используя локальный компьютер.
В этом руководстве предполагается, что вы уже прошли перечисленные выше занятия.
101 пример по LINQ
Для работы с этим примером требуется глобальный инструмент dotnet-try. После установки инструмента и клонирования репозитория try-samples можно изучить LINQ с помощью набора из 101 примера, которые можно запускать в интерактивном режиме. Вы можете исследовать различные способы отправки запросов к данным, исследования данных и преобразования последовательностей данных.
Учим Си шарп: первые уроки
C# (Си шарп) — известнейший объектно-ориентированный язык программирования. Он был разработан группой инженеров от Microsoft на рубеже веков (1998—2001 гг.). Относится к семье языков, имеющих C-подобный синтаксис, очень близок, к примеру, к языку C++ или Java. Однако в этой статье мы не будем подробно рассказывать про историю развития и особенности C #, а лучше сразу перейдем к практическим урокам. Таким образом, ниже вы найдете несколько простейших уроков (глав), представляющих собой обучение первым шагам по программированию на Си шарп с нуля.
Изучаю C# с нуля, глава № 1: первая программа
Как это принято во многих других языках программирования, в качестве первой программы происходит так называемое «знакомство», то есть пресловутый «Hello World!» Давайте в этой главе урока выведем какое-нибудь приветствие, используя метод Console.WriteLine . В нашем случае Console — это, по сути, тип, представляющий окно консоли, тогда как WriteLine — метод типа Console, осуществляющий вывод строки текста в консоли.
Результат работы очевиден:
Вы можете вставить этот код в любой онлайн-компилятор, проверив таким образом работоспособность программы. Также попробуйте написать свое приветствие или изменить название класса.
Учим C# с нуля, глава № 2: переменные
Продолжая изучение, отметим, что данная глава урока будет уже несколько сложнее. Здесь мы рассмотрим работу с типом string, представляющим текст на языке программирования C#. Как и в случае с Console, для типа string применяются методы, причем методы, работающие с текстом.
Если функции программы из главы урока № 1 ограничивались выводом одного простейшего сообщения, то в этом уроке все будет несколько иначе. На практике существует возможность создавать намного более сложные программы, а помогает в этом использование переменных. Что такое переменная? Это символ, применение которого позволяет выполнять один и тот же код с различными значениями.
Давайте посмотрим, как это работает. Изменим немного наш первоначальный код.
string onlineSchool = «Otus»;
Обратите внимание, что в самой первой строке мы объявили variable onlineSchool, назначив ей значение Otus. В результате вывод названия этой онлайн-школы произошел уже второй строке.
Важно понимать, что любая объявляемая variable может получать различные значения. Если требуется, вы можете прописать название другой школы (но мы не советуем :-). То есть одна и та же переменная способна выводить разные значения. Давайте допишем всего две строки.
Интерес вызывает тот факт, что посредством той же самой строки (6 и 8) мы получили два разных сообщения. А все потому, что значение нашей onlineSchool изменилось.
Есть и другие варианты. Внесем снова небольшие изменения в первую программу из главы урока № 2:
string onlineSchool = «Otus»;
Выполнив, мы снова получим приветственную фразу, то есть мы создали строку, используя как константу (слово «Привет»), так и variable.
Учим C#, глава № 3: интерполяция
Но давайте снова усложним нашу предыдущую главу и обучение, то есть пойдем немного дальше. К примеру, поместим нашу переменную между символами фигурных скобок < … >, что позволит коду на C# заменить наш текст переменным значением. Но чтобы мы могли это реализовать, необходимо добавить перед открывающей кавычкой специальный символ $.
string onlineSchool = «Otus»;
Что же мы получим в итоге?
Это не что иное, как интерполяция строк, и теперь вы будете знать о такой технике не понаслышке. Разве не здорово — пройдено всего три коротких главы обучения, а вы уже «потрогали» интерполяцию?
Однако наша короткая статья — не самоучитель, а лишь краткое знакомство с несколькими обучающими главами, которые будут полезны новичкам, желающим программировать на C#.
На этом наши 3 небольших, но содержательных урока подошли к концу. Если хотите освоить язык программирования Си шарп на более профессиональном уровне с подробными главами, экспертными уроками, и обильной практикой, добро пожаловать в онлайн-школу! А вот в какую именно, вы уже хорошо знаете 😉 Помните, что изучение при помощи практикующих программистов даст вам гораздо больше, чем самый лучший самоучитель или самый продвинутый план самостоятельного образования. Планы — планами, теория — теорией, но практику ничто не заменит — с ее помощью изучишь программирование гораздо быстрее.
Статья написана по материалам официального самоучителя для изучения Си шарп с нуля от Microsoft: