1. Главная страница » Компьютеры

C sharp для чайников

Автор: | 16.12.2019

Если вы установили среду программирования Visual Studio, то можете перейти к практическому изучения основ языка C#.

Содержание раздела:

Рекомендуется каждый пример запускать и проверять в среде Visual Studio, набирая для практики тексты вручную (конечно, можно и копировать код примеров с сайта), после чего полезно перейти к подразделу Примеры решения задач к разделу «Основы языка Си шарп».

Теория и примеры работы с классами начинаются с раздела Классы: объекты, структуры, массивы, строки … .

4 мыслей о “Основы языка Си шарп”

После изучения раздела и запуска всех примеров смог вникнуть в язык C#, спасибо

Рад. Давай двигаться дальше.

Вячеслав Александрович!
Очень понравился мне Ваш стиль изложения (сразу чувствуется опыт работы с учащимися), Способ донесения — именно небольшими порциями, доступными для понимания.
Однако возникли технические трудности в понимании последовательности, что за чем следует, так сказать теряется путеводная нить, ввиду отсутствия четкой нумерации разделов и тем.
Заблудился я короче там. Предлагаю применить жесткую систему с числовой нумерацией разделов и тем, что, по моему мнению, устранит путаницу.
P.S. Еще раз выражаю Вам свое глубокое уважение.
Несомненно сайт очень полезный хотя бы ввиду того. что намного современнее множества других, а ведь интерфейс среды разработки сильно изменился например по сравнению с учебниками 10 летней давности. Не удалось мне, например, получить знания от несомненно хорошей книги http://www.frolov-lib.ru/books/msnet/c_sharp2/index.html г. Фролова, поскольку совершенно изменился интерфейс среды разработки. Не там оно в меню и сами меню другие.

Читайте также:  Logitech g303 daedalus apex performance edition

Богдан Николаевич!
Большое спасибо за комментарий и замечания.. Конечно, за
плодовитостью г.г. Фроловых мне не угнаться, они еще с 90-х годов
писали свои книги-справочники обо всем (часто просто путем перевода с
иностранных книг). Но Вы правильно уловили мой подход к обучению.

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

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

Рубрики

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

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

  • Calator prin Romania к записи Как переименовать проект/каталог проекта в Visual Studio?
  • iukovl к записи Как изменить максимальный размер загружаемого файла в php
  • sdfdsgeg к записи Работа с файлом конфигурации (configuration) в C# — читаем и сохраняем
  • iukovl к записи Как изменить максимальный размер загружаемого файла в php
  • Надежда к записи Ошибка в коде привела к убыткам в 476 миллионов долларов и банкротству компании

Архивы

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 означает вычислитель. В этой области даже самый слабенький процессор намного превосходит человеческий мозг.

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

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

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

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

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

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

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

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

Это руководство поможет в интерактивном изучении C#. С помощью браузера вы напишете код C# и сможете просмотреть результаты его компиляции и выполнения. This tutorial teaches you C# interactively, using your browser to write C# and see the results of compiling and running your code. Руководство содержит ряд задач, первой из которых будет написание программы Hello World. It contains a series of lessons that begin with a "Hello World" program. В рамках этих занятий вы ознакомитесь с основами языка C#. These lessons teach you the fundamentals of the C# language.

Запуск первой программы C# Run your first C# program

  • Осталось: 28 мин

Запустите приведенный ниже код в интерактивном окне. Run the following code in the interactive window. Для этого введите следующий блок кода в интерактивном окне и нажмите кнопку Выполнить: To do that, type the following code block in the interactive window and click the Run button:

Поздравляем! Congratulations! Вы запустили первую программу C#. You’ve run your first C# program. Это простая программа, которая выводит сообщение "Hello World!". It’s a simple program that prints the message "Hello World!". Для вывода используется метод Console.WriteLine. It used the Console.WriteLine method to print that message. Console — это тип, который представляет окно консоли. Console is a type that represents the console window. WriteLine — это метод типа Console , который выводит строку текста в текстовой консоли. WriteLine is a method of the Console type that prints a line of text to that text console.

Продолжим изучение. Let’s move on and explore more. Далее в этом уроке рассматривается работа с типом string , который представляет текст на языке C#. The rest of this lesson explores working with the string type, which represents text in C#. Как и для типа Console , для типа string используются методы. Like the Console type, the string type has methods. Методы string работают с текстом. The string methods work with text.

Этот онлайн-интерфейс для написания кода находится на этапе предварительной версии. This online coding experience is in preview mode. При возникновении проблем сообщите о них на странице репозитория dotnet/try. If you encounter problems, please report them on the dotnet/try repo.

Объявление и использование переменных Declare and use variables

  • Осталось: 26 мин

При помощи вашей первой программы на экран выводится string Your first program printed the string "Hello World!" "Hello World!". on the screen.

Вероятнее всего, при изучении C# (как и любого другого языка программирования) вы будете допускать ошибки в коде. As you explore C# (or any programming language), you’ll make mistakes when you write code. Компилятор найдет эти ошибки и сообщит вам о них. The compiler will find those errors and report them to you. Если результат содержит сообщения об ошибках, внимательно просмотрите пример кода и код в интерактивном окне, чтобы понять, что нужно исправить. When the output contains error messages, look closely at the example code, and the code in the interactive window to see what to fix. Это упражнение поможет вам изучить структуру кода C#. That exercise will help you learn the structure of C# code.

Функции первой программы ограничиваются выводом одного сообщения. Your first program is limited to printing one message. Вы можете создавать более полезные программы с использованием переменных. You can write more useful programs by using variables. Переменная — это символ, который вы можете использовать для выполнения одного и того же кода с разными значениями. A variable is a symbol you can use to run the same code with different values. Попробуем сделать это. Let’s try it! Замените код, написанный в интерактивном окне, следующим: Replace the code you’ve written in the interactive window with the following code:

В первой строке объявляется переменная aFriend и ей назначается значение Bill. The first line declares a variable, aFriend and assigns it a value, "Bill". Вторая строка выводит имя. The second line prints out the name.

Любой объявляемой переменной можно присваивать разные значения. You can assign different values to any variable you declare. Можно назначить переменной имя одного из ваших друзей. You can change the name to one of your friends. Добавьте эти две строки в интерактивном окне после кода, который вы уже добавили: Add these two lines in the interactive window following the code you’ve already added:

Обратите внимание, что при помощи одной и той же строки кода выводятся два разных сообщения. Они формируются на основе значения, которое хранится в переменной aFriend . Notice that the same line of code prints two different messages, based on the value stored in the aFriend variable.

Как вы могли заметить, слово Hello в двух последних сообщениях отсутствует. You may have also noticed that the word "Hello" was missing in the last two messages. Исправим это. Let’s fix that now. Измените строки, которые выводят сообщение, следующим образом: Modify the lines that print the message to the following:

Снова нажмите кнопку Выполнить, чтобы просмотреть результаты. Click Run again to see the results.

Вы уже использовали + для создания строк из переменных и констант. You’ve been using + to build strings from variables and constant strings. Но есть способ лучше. There’s a better way. Вы можете поместить переменную между символами < и >, чтобы код C# заменял этот текст значением переменной. You can place a variable between < and >characters to tell C# to replace that text with the value of the variable.

Если добавить $ перед открывающей кавычкой строки, то внутри строки можно включать переменные в фигурных скобках, например aFriend . If you add a $ before the opening quote of the string, you can then include variables, like aFriend , inside the string between curly braces. Попробуйте! Give it a try:

Снова нажмите кнопку Выполнить, чтобы просмотреть результаты. Click Run again to see the results. Вместо "Hello " будет выведено сообщение "Hello Maira". Instead of "Hello ", the message should be "Hello Maira".

Этот онлайн-интерфейс для написания кода находится на этапе предварительной версии. This online coding experience is in preview mode. При возникновении проблем сообщите о них на странице репозитория dotnet/try. If you encounter problems, please report them on the dotnet/try repo.

Работа со строками Work with strings

  • Осталось: 23 мин

Когда вы вносили последние изменения, вы ознакомились с возможностями работы со строками. Your last edit was our first look at what you can do with strings. Рассмотрим их подробнее. Let’s explore more.

Между фигурными скобками можно указать более одной переменной. You’re not limited to a single variable between the curly braces. Попробуйте выполнить следующий код: Try this:

Изучая работу со строками, вы быстро поймете, что это не просто наборы букв. As you explore more with strings, you’ll find that strings are more than a collection of letters. Длину строки можно узнать с помощью Length . You can find the length of a string using Length . Length — это свойство строки, которое возвращает количество содержащихся в ней символов. Length is a property of a string and it returns the number of characters in that string. Добавьте следующий код в нижней части интерактивного окна: Add the following code at the bottom of the interactive window:

Теперь вы можете попрактиковаться самостоятельно. This is a good time to explore on your own. Вы узнали, что Console.WriteLine() выводит текст на экран. You’ve learned that Console.WriteLine() writes text to the screen. Вы научились объявлять переменные и объединять строки. You’ve learned how to declare variables and concatenate strings together. Поэкспериментируйте с интерактивным окном. Experiment in the interactive window. В этом окне есть интересная функция IntelliSense, которая предлагает доступные варианты действий. The window has a feature called IntelliSense that makes suggestions for what you can do. Введите . после d в firstFriend . Type a . after the d in firstFriend . Вы увидите список рекомендаций с доступными свойствами и методами. You’ll see a list of suggestions for properties and methods you can use.

Этот онлайн-интерфейс для написания кода находится на этапе предварительной версии. This online coding experience is in preview mode. При возникновении проблем сообщите о них на странице репозитория dotnet/try. If you encounter problems, please report them on the dotnet/try repo.

Другие действия со строками Do more with strings

  • Осталось: 18 мин

Вы уже использовали метод (Console.WriteLine) для вывода сообщений. You’ve been using a method, Console.WriteLine, to print messages. Метод — это блок кода, который реализует какое-либо действие. A method is a block of code that implements some action. Ему присваивается имя, чтобы вы могли получить к нему доступ. It has a name, so you can access it.

Предположим, что строки содержат начальные или конечные пробелы, которые не нужно отображать. Suppose your strings have leading or trailing spaces that you don’t want to display. Вам нужно обрезать эти лишние пробелы. You want to trim the spaces from the strings. Эту задачу выполняют метод Trim и связанные с ним методы TrimStart и TrimEnd. The Trim method and related methods TrimStart and TrimEnd do that work. Они просто удаляют из строки начальные и (или) конечные пробелы. You can just use those methods to remove leading and trailing spaces. Попробуйте выполнить код ниже: Try the following code:

В этом примере демонстрируются важные принципы работы со строками. This sample reinforces a couple of important concepts for working with strings. Методы управления строками возвращают новые строковые объекты, а не вносят изменения в существующие. The methods that manipulate strings return new string objects rather than making modifications in place. Как видите, каждый вызов любого из методов Trim возвращает новую строку, а не изменяет исходное сообщение. You can see that each call to any of the Trim methods returns a new string but doesn’t change the original message.

Доступны и другие методы для работы со строкой. There are other methods available to work with a string. Вы наверняка уже пользовались командами поиска и замены в текстовых редакторах. For example, you’ve probably used a search and replace command in an editor or word processor before. Метод Replace выполняет аналогичную задачу для строк. The Replace method does something similar in a string. Он находит некоторую подстроку и заменяет ее другим текстом. It searches for a substring and replaces it with different text. Метод Replace принимает два параметра. The Replace method takes two parameters. Это строки в скобках. These are the strings between the parentheses. Первая строка — это текст для поиска. The first string is the text to search for. Вторая строка — это текст для замены. The second string is the text to replace it with. Попробуйте сами. Try it for yourself. Добавьте этот код: Add this code. Введите его и наблюдайте подсказки, которые появятся при вводе .Re после переменной sayHello : Type it in to see the hints as you start typing .Re after the sayHello variable:

Два других полезных метода преобразуют все буквы строки в прописные или строчные. Two other useful methods make a string ALL CAPS or all lower case. Попробуйте следующий код: Try the following code. Введите его и наблюдайте, как IntelliSense предоставит подсказки при вводе To : Type it in to see how IntelliSense provides hints as you start to type To :

Этот онлайн-интерфейс для написания кода находится на этапе предварительной версии. This online coding experience is in preview mode. При возникновении проблем сообщите о них на странице репозитория dotnet/try. If you encounter problems, please report them on the dotnet/try repo.

Поиск по строкам Search strings

  • Осталось: 13 мин

Другая функция операции поиска и замены — поиск текста в строке. The other part of a search and replace operation is to find text in a string. Для поиска вы можете использовать метод Contains. You can use the Contains method for searching. Он покажет, содержит ли строка подстроку. It tells you if a string contains a substring inside it. Попробуйте выполнить код ниже, чтобы изучить Contains: Try the following code to explore Contains:

Метод Contains возвращает логическое значение, которое указывает, найдена ли искомая строка. The Contains method returns a boolean value which tells you if the string you were searching for was found. Логическое значение может принимать значение true или false . A boolean stores either a true or a false value. Логические значения будут более подробно рассмотрены на одном из следующих занятий. You’ll learn more about boolean values in a later lesson.

Задача Challenge

Существует два схожих метода (StartsWith и EndsWith) для поиска подстрок в строках. There are two similar methods, StartsWith and EndsWith that also search for sub-strings in a string. С их помощью выполняется поиск подстроки в начале или конце строки. These find a substring at the beginning or the end of the string. Попробуйте изменить пример выше таким образом, чтобы вместо Containsиспользовались StartsWith и EndsWith. Try to modify the previous sample to use StartsWith and EndsWith instead of Contains. Выполните поиск слов You или goodbye в начале строки. Search for "You" or "goodbye" at the beginning of a string. Выполните поиск слов hello или goodbye в конце строки. Search for "hello" or "goodbye" at the end of a string.

При проверке текста в конце строки учитывайте знаки пунктуации. Watch your punctuation when you test for the text at the end of the string. Если строка оканчивается точкой, необходимо проверить строки, которые оканчиваются точкой. If the string ends with a period, you must check for a string that ends with a period.

Вы должны получить значение true , поставив слово "You" в начале, а слово "hello" — в конце, и значение false, поставив в начале или конце слово "goodbye". You should get true for starting with "You" and ending with "hello" and false for starting with or ending with "goodbye".

Этот онлайн-интерфейс для написания кода находится на этапе предварительной версии. This online coding experience is in preview mode. При возникновении проблем сообщите о них на странице репозитория dotnet/try. If you encounter problems, please report them on the dotnet/try repo.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *