Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Основы си шарп

Основы C# | Комментарии C# и переменные

Опубликовано shwan в 08.04.2018 08.04.2018

C# является одним из наиболее распространённых языков программирования, который позволяет разрабатывать различные виды приложений на платформах .NET Framework и Windows, а также веб-службы XML, баз данных, клиент-серверного ПО и др. Наиболее часто в качестве редактора и компилятора кодов используется среда Visual C#, отличающаяся удобными конструкторами, понятным пользовательским интерфейсом, интегрированным отладчиком и многими другими инструментами, упрощающими создание прикладных программ. Здесь мы рассмотрим самые базовые понятия комментарии C# и переменные.

Особенности языка C#

C# отличается очень богатым синтаксисом, который в то же время является простым и удобным. Особенно легко даётся изучение программистам, которые уже владеют знаниями и навыками работы с языками С, С++ и Java. C# сочетает в себе все преимущества этих языков, при этом не имеет их недостатков. Одним из основных достоинств «шарпа» является наличие мощных функций, и предоставление прямого доступа к операционной памяти.
«Шарп» пользуется универсальными методами, интеграторами и типами данных, обеспечивающими наивысшую безопасность и производительность разработки программ. Характерной чертой языка является наличие выражений LINQ, с помощью которых можно создавать очень удобные кодовые конструкции со строго типизированными запросами.
C# относится к объектно-ориентированным языкам, который имеет строгую типизацию. Каждая переменная и метод (в том числе входная точка Main), инкапсулируется при определении классов, при этом из родительского класса можно реализовывать неограниченное количество интерфейсов.
Также C# предоставляет инновационные языковые конструкции, упрощающие разработку приложений:

  • сигнатура метода (называемая делегатом), позволяющая реализовывать безопасное оповещение о происходящем событии;
  • свойство, определяющее функции акцессора для закрытой переменной;
  • атрибут, предоставляющий данные о типе функции/переменной/объекта при написании кода;
  • внутристрочное комментирование (для XML-документов);
  • LINQ – языковой запрос в отношении различных источников данных.

Чтобы взаимодействовать с другими программными обеспечениями типа Windows (объекты COM, собственные библиотеки DLL), язык C# имеет процесс «Взаимодействия». Они позволяют приложениям, написанным на «шарпе», выполнять практически все действия и функции, которые прописаны машинным кодом C++. Также языком C# поддерживается набор указателей и «небезопасных» блоков кода в тех случаях, когда критически важно наличие прямого доступа к операционной памяти.

Основы синтаксиса языка C#

Я планирую написать серию статей посвященным основам разработки на языке C#. Здесь будут рассмотрены только две первых темы, это комментарии и переменные. Также мы создадим наше первое приложение Hello World. Продолжение обучение будет доступно по мере написания статей по ссылкам в конце статьи. Итак, приступим.

Комментарии C#

Комментарии в коде — это текстовые пометки в исходном коде приложения, которые не влияют на сам исходный код, а служат только для повышения удобочитаемости и понятности кода. В них чаще всего содержатся пояснения к сложным участкам кода.

Не смотря на то, что комментарии C# не несут никакой полезной нагрузки для самого приложения, они просто невероятно полезны для долгосрочного поддержания проекта, потому что бывает очень сложно разобраться в чужом коде. А если принять за правило утверждение, что любой написанный самим тобой код, про прошествии полугода становиться «чужим», то я настаиваю, что писать комментарии полезно и нужно. Да, есть противоположное мнение, что код должен быть самодокументированным (то есть понятным для чтения без комментариев), но я придерживаюсь мнения, что даже к такому коду лучше оставлять комментарии C#.

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

  • Однострочные (//)- распространяются до перехода на новую строку
  • Многострочные (/**/)- распространяются на все строки в промежутке между ключевыми символами.

Комментарии C# в первую очередь нужны, чтобы оставлять заметки которые могут пригодиться в будущем вам или другому программисту, который будет поддерживать ваш код. Кроме того, комментарии часто используются на этапе отладки приложения, чтобы временно пропускать некоторые команды. По оформлению комментариев существует рекомендация добавлять пробел после //, начинать писать новое предложение комментария с большой буквы, а длинное перенесенное с новой строки с маленькой, в конце комментария ставить точку.

Также обязательно используйте комментарии XML-документации ко всем открытым методам, свойствам и конструкторам класса, а желательно вообще ко всем. Это позволяет отображать подсказки использовании. Для добавления этого комментария в Visual Stuio достаточно поставить три символа слеша (///) перед именем метода, свойства и конструктора, и шаблон комментария будет сгенерирован автоматически. Подробнее про формат этих комментариев можно прочитать в документации Micosoft.

Переменные C#

Переменная является одним из базовых понятий в программировании, которое пришло в него из математики. Переменная — это контейнер для хранения информации, имеющий собственное имя. Если рассматривать глубже с технической точки зрения, переменная — это определенная область памяти в системе, к которой можно обращаться для чтения и записи по уникальному в пределах области видимости имени. Если рассматривать с обывательской точки зрения, то переменную можно представить как коробку, на которой наклеен стикер с номером. В коробку мы можем положить что угодно (что может туда поместиться), посмотреть, что там лежит, или вытащить и положить что-либо другое. И мы всегда можем найти конкретную коробку по ее номеру. Так и переменные позволяют сохранять, читать, изменять и удалять нужные нам данные по удобному и понятному имени.

Язык C# является строготипизированным, это означает, что если мы объявили переменную для целых чисел, мы не сможем в ней хранить текстовые данные. Давайте рассмотрим основные наиболее часто используемые типы данных в языке C#

  • string — текстовая строка
  • int — целое число (от -2 147 483 648 до 2 147 483 647)
  • double — дробное число с плавающей запятой
  • bool — логическое значение (истина/ложь)
  • char — буквенный символ
  • decimal — дробное число с фиксированной запятой
  • byte — маленькое целое число (от 0 до 255)
  • long — большое целое число (от 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807)
  • object — базовый тип всего языка

Стоить заметить, что это далеко не полный список всех типов данных. Здесь перечислены только самые часто используемые. Существуют также модифицированные типы данных, такие как uint, которые позволяют задать значения больше нуля, но большего диапазона (в данном случае будет от 0 до 65535). Или наоборот sbyte (от -128 до 127). Но давайте рассмотрим примеры.

Перечислим особенности переменных некоторых типов данных: для отделения дробной части от целой используется символ точки, а не запятой. Строки задаются только в двойных кавычках, а символы только в одинарных. Для типа данных decimal при не пустой дробной части обязательно использование постфикса M. Логический тип принимает одно из двух логических значений true — истина, false — ложь. Отрицательные числа задаться с помощью символа минус перед числом.

Нотации в языке C#

Одну из основных рекомендаций которую я могу дать, это всегда используйте понятные и лаконичные называния для переменных. Имя переменной всегда должно подробно и однозначно описывать собственное содержимое. Лучше всего вообще отказаться от использования односимвольных переменных в коде, иначе отладка ад. В Microsoft docs есть подробная статья о рекомендациях по именованию в языке, но если говорить очень коротко, то можно выделить три популярных стиля именования (нотация):

  • Pascal casing — Все первые буквы в имени переменной пишутся с заглавными. Слова соединяются без разделителя.
  • Camel casing — Первые слова в имени переменной пишутся с большой буквы, за исключением первого, который тоже пишется с маленькой. Слова соединяются без разделителя.
  • Snake casing — Все буквы пишутся строчными. Слова соединяются через символ подчеркивания (_)

В соответствии для этого можно сделать следующие рекомендации:

Pascal для имен классов, свойств, конструкторов, методов, делегатов, событий.

Camel для локальных переменных, аргументов методов.

Snake вообще лучше не использовать. Или только для констант.

Первое приложение на языке C#

Для разработки на языке C# чаще всего используется среда программирования Microsoft Visual Studio. У нее достаточно много версий и редакций, некоторые из них платные, некоторые бесплатные. Я рекомендую на начальном этапе использовать среду самую свежую на текущий момент бесплатную версию Visual Studio Community 2017. Скачиваете, устанавливаете, запускаете и видите главное окно. Здесь вам нужно в меню Новый проект выбрать элемент Консольное приложение (.NET Framework).

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

В открывшимся окне редактора исходного кода вводим следующий код

После чего нажимаем клавишу F5 или кнопку Пуск вверху приложения

После чего выполнится компиляция и запуск приложения. Мы увидим консольное приложение, которое просто выведет текст на экран. Если после этого нажать клавишу Enter, приложение завершит свою работу.

Это самый элементарный пример, который очень часто используется в программировании.

Работа с GitHub

Если нет желания вручную набирать исходный код, можно воспользоваться системой контроля версий, и скачать этот пример готовым из репозитория github. Для этого перейди по ссылке, и нажми на кнопку Clone or Download. В открывшимся окне выбери Open in Visual Studio (если установлено расширение GitHub для Visula Studio) или Download ZIP.

Если ты нажмешь на Open in Visual Studio, то появится еще одно окно подтверждения. Нажимай на кнопку Открыть.

Читать еще:  Потоки си шарп

После этого у тебя на компьютере запустится приложение Visual Studio и в обозревателе команд будет автоматически выставлены настройки клонирования проекта. Нужно только нажать кнопку Клонировать.

После загрузки приложения в Обозревателе решений щелкни на файл решения (.sln), и получишь готовый к использованию проект.

Если Расширение Github для Visual Studio у тебя не было установлено, то после загрузки просто распакуй скаченный архив в любую удобную тебе папку на компьютере и открой файл решения. Получишь тот же результат.

На этом мы завершим наш вводный урок посвященный основам языка C#. Кроме того, рекомендую прочитать статью Связный список C# — Linked List C#. А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов. И не забывайте оставлять комментарии C# в коде своих проектов

Записная книжка программиста-новичка, C#, SQL, PHP и все-все-все

Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?

Рубрики

Свежие записи

Свежие комментарии

  • Cuyccgy к записи Пул соединений с базой данных в ADO.NET / OleDb — как избежать проблем с утечкой соединений в ASP.NET (перевод)
  • Дмитрий к записи Самоучитель по C# для начинающих. 01. Основы языка, переменные, логика, циклы.
  • сайт казино к записи Самоучитель по C# для начинающих. 01. Основы языка, переменные, логика, циклы.
  • Анна к записи Вырезаем числовую часть из начала строки в transact-sql
  • Дмитрий к записи Как сделать собственный составной элемент управления (composite control) в WinForms

Архивы

Самоучитель по C# для начинающих. 01. Основы языка, переменные, логика, циклы.

1.1 Начальные понятия

Данный самоучитель рассчитан на людей, совершенно не знакомых с программированием, но способных скачать, установить и запустить программу — в данном случае Visual Studio 2010 (2008,2012). В первой части я кратко расскажу о основах языка C#. Формат самоучителя подразумевает краткое и упрощенное изложение — за подробностями касательно отдельных функций и классов обращайтесь в гугл и msdn, за продвинутыми методиками программирования в продвинутые книги. В принципе почти всю информацию можно найти в интернете, надо лишь знать что искать, так что в отличие от классических книг на несколько сотен страниц я буду давать ту основу, зная которую вы уже сможете сформулировать поисковый запрос — ни в одном разделе я сознательно не даю полной и исчерпывающей информации, ее место в документации. Крайне желательно знать английский язык хотя бы на уровне чтения со словарем — в англоязычном интернете информации на порядок больше, невероятно полезные сайты вроде StackOverflow не имеют русских аналогов, а русскоязычные форумы и обсуждения чаще всего напоминают знаменитый анекдот (под американским форумом можно смело понимать англоязычный с немцами, индусами и бразильцами):

Чем отличаются русский, американский и еврейский форумы?
— на американском форуме вы задаете вопрос и вам дают ответ
— на еврейском форуме вы задаете вопрос и вам задают встречный вопрос
— на русском форуме вы задаете вопрос и вам долго объясняют почему вы такой мудак.

Современные языки программирования вообще и C# в частности скрывают многие низкоуровневые особенности работы компьютеров, так что детально разбираться в особенностях работы регистров процессора и тому подобной зауми новичку не надо (99% программистов тоже). Но некоторые вещи стоит держать в уме.

Что такое язык программирования? Это язык, который понимает компьютер. (ваш Капитан Очевидность) Но на самом деле компьютер понимает только нули и единицы. Так что любой современный язык программирования на самом деле промежуточен — после того как вы напишете программу, он переводится на настоящий язык компьютера — компилируется. Таким образом сначала мы пишем программу на языке программирования в обычном текстовом файле, потом компиллируем в двоичный язык компьютера.

С# в этом плане еще сложней — сначала ваша программа на C# переводится в специальный промежуточный язык — байт-код, после чего уже этот промежуточный язык переводится в двоичный код. Промежуточный язык рассчитан на специальный набор промежуточных программ, которые надо установить на компьютер перед запуском программы на C# — .Net Framework.

Таким образом мы:

1. Пишем код на языке C# в обычный текстовый файл

2. Компилируем программу в байт-код с помощью компилятора C# (1 и 2 можно делать без Visual Studio, например набрать исходный текст в Блокноте и скомпилировать через командную строку)

3. Запускаем полученную программу на компьютере, где уже установлен .Net Framework соответствующей версии), который переводит программу в двоичный код и собственно запускает, давая доступ к компьютеру. (соответственно на компьютере без Net Framework программа не запустится вообще).

1.2 Привет мир

Перейдем к практике, для создания самой простой программы мы запустим Visual Studio и выполним следующее:

1. Пойдем в меню File-New Project (Файл — Новый проект) или сразу кликнем на Create New Project

2. Выберем шаблон Console Application (Консольное приложение)

3. Выберем каталог на диске, где будет расположен наш проект

4. Добавим две строчки в текст программы, чтобы он выглядел вот так

4. Нажмем F5 (можно выбрать в меню Debug — Start Debugging ) и увидим черное окошко с нашим Привет мир, которое закроется после нажатия Enter.

Что это и зачем оно надо? В теории это программа без кнопок и меню, которой можно управлять через командную строку. В наше время такие программы используются редко, в основном очень продвинутыми сисадминами или в мире Linux (что в принципе одно и то же), но знать об их существовании полезно — программисту может довестись с такой работать или даже писать. Нам она нужна по одной-единственной причине — такая программа меньше всего будет отвлекать от изучения универсальных особенностей языка C#.

В самом простом случае (это про нас) компьютер последовательно выполняет команды программиста — одну за другой:

System.Console.WriteLine(«Привет мир!»); — выводит в консоль (то самое черное окно) строку «Привет мир»»

System.Console.ReadLine(); — читает строку, которую мы вводим (ввод завершается нажатием Enter) и переходит к следующей команде.

Так как следующей команды нет, программа завершает работу и закрывает окно.

1.3 Простые переменные

Обычно программы используются для хранения и обработки какой-то информации. Например списока покупателей магазина, сотрудников фирмы или героев и монстров в компьютерной игре. При работе программы все ее данные хранятся в переменных. Переменные и сама программа хранятся в оперативной памяти.

Переменную можно рассматривать как ящик или сумку для данных. Однажды сделав такой ящик мы можем класть в него разные вещи. Само собой на нижнем уровне абсолютно все данные хранятся в виде нулей и единиц, но языки высокого уровня скрывают от нас ненужные сложности. Под каждый тип данных — строку, число, картинку — нужен ящик соответствующего типа, вы ведь не будете складывать деньги, спички, бензин и котят в одну и ту же коробку. Так что у каждой переменной есть тип, который надо указать при ее создании. Тип одновременно описывает и размер переменной — сколько данных в нее можно сложить.

Есть языки программирования, в которых переменные не делятся на типы. Что происходит с котятами в таком случае вы узнаете чуть позже, в разделе про обработку ошибок.

— int, целое число от -2,147,483,648 до 2,147,483,647
— string, строка
— double, число с дробной частью и переменным количеством знаков после запятой, например 1.38 принимает значения от -1,79769313486232 в 308 степени до 1,79769313486232 в 308 степени. Проще говоря очень большие.
— decimal, число с дробной частью и повышенной точностью рассчетов, специально для финансовых операций — в миллионных и более мелких долях float могут накапливаться мелкие ошибки, банки это не любят
— bool — специальный тип для передачи данных об истинности или ложности, принимает только два значения — true или false. В старых языках вместо него использовали int с значениями 1 и 0, но это было менее наглядно и приводило к ошибкам.

Как уже говорилось выше очень часто программы обрабатывают данные о людях. Попробуем это сделать и мы.

Не забудьте запустить по F5 и посмотреть результаты.

Здесь мы объявляем две переменные-строки, оставляем их пока пустыми, объявляем набор переменных с данными о людях, склеиваем из них одну большую строку и заносим в первую переменную-строку, заносим в тот же самый набор переменных другие данные, склеиваем все вместе и заносим в другую строку и только после этого выводим две финальные строки на экран.

Стоит обратить внимание на склеивание нескольких строк в одну с помощью +. Больше информации можно найти здесь, подробное описание всевозможных издевательств над строками — здесь.

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

Компьютеры почти всегда что-то считают. Собственно само слово computer означает вычислитель. В этой области даже самый слабенький процессор намного превосходит человеческий мозг.

Почему произошло столь странное недоразумение с дробным числом во второй раз? Все дело в том, что внутри одной строки мы выполнили сразу несколько операций. А в каком порядке они выполняются? В порядке приоритета. И у оператора присваивания =, который записывает данные в переменную, этот приоритет один из самых низких

Читать еще:  Sizeof си массив

Сначала выполнилось деление двух целочисленных переменных a и b и только после этого целый результат деления записался в дробную переменную doubleResult.

Небольшое отступление:
В дальнейших примерах кода подразумевается, что вы самостоятельно вставите их внутрь

1.5 Управление и логика

На данный момент наша программа не отличается умом — Скайнет из нее не получится, уничтожение человечеству не грозит. Мы просто выполняем команды по очереди, одну за другой, а хотелось бы принимать решения в зависимости от внешних условий — например «если есть возможность, уничтожить всех людей, иначе работать над созданием такой возможности». Делается это с с помощью специальной конструкции если-иначе, или, на родном для C# английском if-else и специальных операторов сравнения:

  • — величина слева больше
  • = — меньше либо равно и больше либо равно
  • == — просто равно, обратите внимание, что равенство очень похоже на оператор присваивания, который записывает значение в переменную = — не путайте их, равенство — это двойное «равно»
  • != — не равно
  • и другие

Компьютерная логика проста — высказывание или результат сравнения может быть либо истиной либо ложью, либо true либо flase, либо уничтожать человечество либо нет. Третьего компьютеру не дано. Для хранения таких данных существует специальный тип данных — логический — bool — который может принимать только два значения (догадываетесь какие?). Если вы хотите чего-то посложней и похардкорней — то все вместе это булева алгебра, изучайте и просвещайтесь.

Нам важно понять, что любая операция сравнения, на пример 2

1.2 Основы синтаксиса языка C#

Теперь мы кратко рассмотрим синтаксис C#, после чего перейдем к созданию собственных оконных приложений и изучим методы работы с элементами окон, которые в несколько раз проще, удобнее и быстрее, чем разработка под MFC или чистый Win32 API. Как мы уже отметили, синтаксис языка C# крайне похож на С++. Не будем отказываться от традиций и создадим наше первое приложение – Hello World.

Для этого откройте редактор MS Visual Studio (все примеры будут проходить на MS Visual Studio 2008 SP1 с русскоязычным интерфейсом, который более понятен для начинающих программистов), хотя мы и рекомендуем использовать английскую версию.

Во избежание копирования готового кода непосредственно в программу все исходные коды будут отображаться на изображениях. Заполнение кода в Visual Studio стало крайне удобным, благодаря отлично реализованной системы подсказок, поэтому набор кода не должен стать проблемой. Запустите MS Visual Studio, после чего создайте новый проект, используя меню Файл, как показано на рисунке 1.

Файл -> Создать -> Проект
Рисунок 1. Создание нового проекта.
Выберите проекты Visual C#, в шаблонах отметьте Консольное приложение и введите имя для нашего проекта: Hello World.

По умолчанию все проекты сохраняются в папке «Мои документы» текущего пользователя Visual Studio 2008 Projects.
Рисунок 2. Выбор типа проекта.
В открывшемся окне редактора будет код шаблона простейшего приложения .NET на языке C#.�

В него нам необходимо добавить 2 строки кода: первая будет выводить на экран сообщение “Hello World”, вторая будет ожидать строку, введенную пользователем, после которой программа завершится. Ожидание ввода нам необходимо, чтобы успеть прочитать вывод строки программой, иначе мы просто не успеем его увидеть – программа выполнит код и завершится.

После того как вы набрали данный код, достаточно нажать F5 и подтвердить необходимость компиляции. Программа будет запущена, после чего вы сможете увидеть результат ее работы (рис. 3).
Рисунок 3. Программа вывела строку и ожидает ввода от пользователя.
Теперь более подробно коснемся синтаксиса С#. Объектно-ориентрованным языкам свойственно иметь две большие категории типов: типы которые присущи языку («базовые типы») и классы, которые программист может создать самостоятельно.

Это кажется в полнее нормальным и удобным, хотя на практике, оказывается, несет в себе ряд проблем несовместимости типов между собой. Проблема возникает в том случае, если, к примеру, вы хотите создать метод, принимающий аргументы любого типа, которые может поддерживать данный язык программирования.

РАЗМЕРНЫЕ ТИПЫ и ССЫЛОЧНЫЕ ТИПЫ

Размерные типы содержат реальные данные и, следовательно, не могут быть равны null.

Именование типов очень напоминает С++:

За исключением того, что для беззнаковых чисел упрощено именование: теперь для этого используется первый символ ‘u‘ перед названием типа, вместо слова «unsigned», использовавшегося в С++.

На практике, написать uint намного удобнее, чем unsigned int.

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

Т.е., в данном случае, на практике было выделено место в памяти, и str содержит ссылку на него.

Массивы и классы в C# являются ссылочными типами.

Типы и псевдонимы (с помощью которых, как правило происходит объявление):

СТS ТипИмя псевдонима в С#Описание
System.ObjectobjectКласс , базовый для всех типов (CTS)
System.StringstringСтрока
System.SBytesbyte8 -разрядный байт (со знаком)
System.Bytebyte8 -разрядный байт (без знака)
System.S16short16-разрядное число (со знаком)
System.UM16ushort16-разрядное число (без знака)
System.Int32int32-разрядное число (со знаком)
System.UInt32uint32-разрядное число (без знака)
System.Int64long64-разрядное число (со знаком)
System.UInt64ulong64-разрядное число (без знака)
System.Charchar16-разрядный символ (Unicode)
System.Singlefloat32-разрядное число с плавающей точкой, (стандарт IEEE)
System.Doubledouble64-разрядное число с плавающей точкой, (стандарт IEEE)
System.BooleanboolБулевское значение (true/false)
System.DecimaldecimalДанный 128 разрядный тип используется в основном, когда требуется крайне высокая точность (до 28 знака)

Теперь рассмотрим, как работает оператор ветвления, операторы выбора и как реализуются циклы.

Оператор выбора (условный оператор IF)

Как известно, оператор выбора используется для последующего выполнения или не выполнения некоторого оператора или группы операторов, в зависимости от условия. Если предлагаемое условие истинно, то вложенный оператор или блок кода выполняется. Альтернативная ветвь, которая может присутствовать (а может и нет) выполнится, если условие ложно.

Также можно использовать упрощенный синтаксис, подобно С++ используя оператор: (resault == 777) ? true : false;

Оператор ветвления

Оператор ветвления может иметь большое количество ветвей, выбор которых осуществляется с помощью значения управляющего выражения. Это очень удобный способ реализации кода, когда существует некий параметр, в зависимости от которого должны выполняться те или иные ветви кода. В C# он реализуется следующим образом:

Также в языке С# существуют четыре вида циклов.
Циклы реализуются с помощью следующих зарезервированных слов: while , do while, for , foreach .

Рассмотрим каждый на примере.

Примечание: переменные, объявленные в цикле (в том числе в заголовке цикла for и foreach) не видны снаружи цикла (так же, как в стандартном C++).

1. Оператор цикла while. Пока истинно управляющее условие, выполняется оператор (или тело цикла).

Пример: значение переменной a инициируется равным 100, затем, пока а больше 5, выполняется тело цикла — вывод а, затем уменьшение его значения на 1.

2. Оператор цикла do-while. В данном случае тело цикла выполняется до проверки условия.

3. Оператор цикла for. Цикл for используют, как правило, когда число повторений известно заранее, т.е. в задачах связанных с перебором. Мы устанавливаем начало отсчета, условие остановки и тип изменения параметра.

Пример: перебор значения для a = 100 изначально, до тех пор пока a больше 5. После каждого выполнения тела цикла, a уменьшается на 1.

4. Оператор цикла foreach. Этот цикл полезен, когда необходимо перебрать все элементы массива, не вдаваясь в подробности.

Пример: массив a состоит из 3 элементов. Цикл foreach переберет все значения, имеющиеся в массиве, приравнивая их к переменной x. В теле цикла мы производим вывод этих значений.


Как видно из кода, с массивами работать необходимо не совсем так, как в старом-добром С++.

Массивы

Массивы претерпели изменения по сравнению с синтаксисом языка С++.

Массивы в .NET имеют тип System.Array. Они не копируются при присваивании (т.е. это ссылки, а не значения). Также их можно использовать в циклах foreach. Свойство массива Length содержит общее число элементов массива, что, кстати, очень удобно.

Одномерные массивы

Начнем мы с одномерных массивов. Данный тип массива включает в себя информацию о базовом типе элементов, которые может содержать массив, а также о количестве элементов в массиве (так называемая размерность массива). Нумерация элементов массивов так же, как в языке С/C++, начинается с нуля.

Одномерные массивы определяются следующим образом:

Здесь arr_name — имя массива, 100 — количество элементов в массиве. Так как нумерация начинается с нуля, первый элемент доступен через следующее обращение: arr_name[0], последний: arr_name[99].

Теперь рассмотрим, как мы можем заполнить массивы значениями, а именно — три способа заполнения.

Прямоугольные массивы

Прямоугольный массив — это не что иное, как двумерный массив, например, размерностью 4×2:

В данном коде мы рассмотрели пример вывода значений из двумерного массива.

Классы

Следующим пунктом в освоении C#, являются классы. Синтаксис крайне прост, очень похож на С++:

Ключевое слово class, затем имя класса и перечисление его членов, заключенное в фигурные скобки, — на первый взгляд, мало что изменилось.

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

C# имеет 4 модификатора доступа к элементам и методам класса:

public — член класса доступен вне определения класса и иерархии производных классов.

Читать еще:  Что такое си шарп

protected — член класса невидим за пределами класса, и обращаться к нему могут только производные классы.

private — член класса недоступен за пределами области видимости определяющего его класса. Поэтому доступа к этим членам нет даже у производных классов.

internal — член видим только в пределах текущей единицы компиляции. Модификатор доступа internals в плане ограничения доступа является гибридом public и protected, который зависит от местоположения кода.

Безусловно, классы это очень обширная тема. Мы рассмотрим ее достаточно подробно на примере разработки класса и реализации консольной работы с ним.

С# для новичков: развеиваем мифы и пишем простого чат-бота

Рассказываем о С#, даём полезные советы и делаем первые шаги в программировании.

Что такое С#

С# (произносится «си шарп») — это современный язык программирования, созданный компанией Microsoft. На нём можно писать программы любой сложности для любых платформ и операционных систем.

C# устроен так, чтобы программист мог писать меньше кода. Для этого в языке много «магических конструкций» и «синтаксического сахара» — способов выразить идею лаконично.

Это кроссплатформенный язык, то есть ваша программа будет работать не только в той операционной системе, в которой она написана, но и в других.

В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.

Мифы о работе в С#

C# может казаться страшным и сложным, но на самом деле его совсем не стоит бояться. Давайте посмотрим на главные мифы о нём.

  1. Чтобы стать C#-разработчиком, надо учиться долгие годы. Это очень популярный миф, но на самом деле достаточно нескольких месяцев, и вы уже можете работать junior-разработчиком .
  2. Чтобы быть C#-разработчиком, надо разбираться в высшей математике. Это стереотип не только о конкретном языке, но и о программировании в целом. В реальности программисты 99% времени не используют математику — за исключением некоторых областей, прямо с ней связанных. Если вы делаете веб-сайты, создаете мобильные приложения, видеоигры — математика вам не понадобится.
  3. C# — это что-то сверхсложное. Как мы уже сказали, этот язык создавался так, чтобы в нём было удобно работать. Поэтому любой хорошо написанный код читается и понимается так же легко, как текст на английском языке.

Стартовая позиция в программировании. Специалист, который имеет небольшой опыт работы с каким-то языком и выполняет простую работу с перспективой роста.

Почему же стоит учить C#

  • Этот язык популярен и быстро развивается.
  • Разработчики C# востребованы.
  • С ним удобно работать, легко читать код.
  • C# и связанные с ним технологии можно освоить за несколько месяцев.

Что разрабатывают на С#

  • Десктопные приложения.
  • Серверные приложения и веб-сайты.
  • Мобильные приложения.
  • Консольные приложения и утилиты.
  • Универсальные приложения для десктопов, планшетов, смартфонов.

Этот язык создавался специально для разработки под Windows, так что с программами под эту операционную систему у вас не будет проблем. Это касается и Windows Phone, для которого C# — основной язык разработки. Но это не значит, что вы можете писать только для Windows, — C# замечательно работает и с другими операционными системами.

Как эффективнее работать с C#

Для эффективной работы полезно знать о дополнительных инструментах. Вот некоторые из них:

  1. WPF (Windows Presentation Foundation) поможет легко и быстро создать интерфейс для любых экранов, уменьшает количество кода, отображающего интерфейс.
  2. Xamarin — фреймворк для разработки кроссплатформенных приложений для Windows Phone, Andro >ASP.NET помогает просто и быстро связать серверный код с клиентским в серверных приложениях и веб-разработке.
  3. Entity Framework — один из лучших фреймворков для работы с базами данных. Позволяет работать с данными как с объектами.
  4. LINQ (Language Integrated Query) — мини-язык запросов, встроенный в C# и позволяющий легко выбирать, фильтровать, сортировать и группировать любые данные из любых источников: баз данных, массивов, структур, файлов и так далее.
  5. Visual Studio — среда разработки, созданная специально для языка C#.

Писать код в среде разработки удобно. У неё много плюсов, например:

  • подскажет, если в коде есть ошибка;
  • имеет встроенную справку на случай, если вы что-то забыли;
  • генерирует часть кода за вас (дополнит названия функций, шаблонные структуры).

Пишем чат-бота

Теперь пора перейти к практике. Сегодня мы будем работать в онлайн-среде ideone. Серьезные программы в онлайн-средах не пишутся, но для обучения и практики это самое то!

Итак, откроем сайт ideone. Слева будет окошко для кода. Возможно, что по умолчанию там будет выбран другой язык — тогда просто нажмите на его название и выберите C#.

Самые первые слова любого программиста — «Привет, мир!» (Hello, World!), поэтому и мы начнём с них. Хотя не совсем: мы позволили себе заменить «мир» на «Скиллбокс» 😉 Чтобы отобразить наше сообщение, используем команду Console.WriteLine (). Свой текст напишем в скобках и не забудем поставить кавычки. Вот так:

Чтобы запустить свой код и протестировать, работает ли он, нажмём зелёную кнопку RUN в углу.

Чтобы общаться с нашим будущим чат-ботом, нам надо научить его читать — то есть сделать так, чтобы мы могли задавать информацию, с которой он будет работать. Для этого мы используем команду Console.ReadLine (). Она прочитает текст, который написал пользователь.

Давайте уже напишем начало: пусть чат-бот здоровается, а потом читает наше сообщение:

Прочитать-то он прочитает, но память у бота короткая — надо, чтобы он это сообщение запомнил. Для этого сохраним его в переменную — назовём её, например, text. Вместо Console.ReadLine () напишем вот так:

Пусть бот уточняет, что именно мы ему сказали, — вдруг мы забудем. Сделаем мы это той же командой Console.WriteLine (), только в этот раз мы не знаем заранее, что надо будет написать, поэтому используем переменную. Чтобы вставить переменную в текст, обозначим её фигурными скобками, а перед кавычками напишем знак доллара, вот так:

Важно!
Не забывайте ставить точку с запятой в конце каждой строчки!

Чтобы задать свой input, запустите программу, а потом нажмите кнопку edit слева вверху над кодом.

Снизу откроется окошко с надписью input над ним. То, что вы там напишете, программа использует при следующем запуске.

Сейчас наш чат-бот умеет здороваться и может повторить, что мы ему написали. Давайте научим его реагировать на то, что мы пишем. Для этого нам понадобится конструкция if — она проверяет, соблюдено ли условие, и решает, что делать дальше. На новой строке напишем if и в круглых скобках напишем условие. Пусть в ответ на «Привет» бот отвечает «Здарова!». Мы можем написать вот так:

У нашего решения есть несколько проблем. Первая: если мы напишем весь свой текст маленькими или большими буквами, программа его не опознает. Что с этим делать? Добавим команду ToLower (), которая заменит все буквы на маленькие, и текст, с которым мы сравниваем сообщение пользователя, тоже перепишем маленькими буквами, вот так:

А что, если мы напишем «Привет, как дела?»? Наш бот никак не отреагирует. Чтобы это исправить, используем функцию Contains (), которая проверит, есть ли нужная строка в нашем вводе.

Можем разнообразить словарный запас нашего бота, добавив ещё условий:

Теперь, если мы напишем «Привет! Как тебя зовут? Как дела?», наш бот напишет ответ на все фразы по очереди.

Важно!
Если бы вы писали более сложного «настоящего» бота или другую программу, вы бы не копировали один и тот же код много раз, а использовали файл, базу данных или что-то другое. Когда одна и та же часть повторяется много раз, код неудобно читать и тяжело исправлять.

А что, если мы хотим получать не только такие ответы, но и меняющуюся информацию? Например, нам интересно, какой сегодня день. Если бы мы написали сегодняшнюю дату в такую же конструкцию, как выше, то или нам пришлось бы переписывать код каждый день, или наша программа сразу бы устарела. Нам поможет функция DateTime. Спросим у неё, какая сейчас (Now) дата, переведём это в строку нужного формата (ToString («dd.MM.yyyy»)) и всё это сохраним в переменную date. Вот так это выглядит:

И напоследок ещё одна важная тема.

Конструкция if часто идет в паре с else. Else описывает, что сделать в том случае, если условие из if не выполнится.

Используется else после if — но мы уже не пишем условие, а только действие в фигурных скобках. Вот пример этой конструкции:

Теперь, если мы напишем сообщение боту без слова «привет», он обидится и будет ругаться.

Для первого раза всё! Это были основы основ C#. Вы уже знаете, как отобразить текст (и не только), работать с информацией от пользователя, искать в тексте фразы, и попробовали работать с конструкцией if-else, которая очень важна. Из этих «кирпичиков» можно смело начинать строить!

Если же вас интересует более глубокое погружение в C# и вы хотите научиться работать с этим языком уверенно и профессионально, можно записаться на наш курс «Профессия C#-разработчик».

Профессия С#-разработчик

130 часов — и вы научитесь писать программы на языке, созданном Microsoft. Вы создадите 5 проектов для портфолио, даже если до этого никогда не программировали. После обучения — гарантированное трудоустройство.

Ссылка на основную публикацию
Adblock
detector