И так… я наконец решил собрать свой багаж знаний в нечто единое для того, что бы помочь начинающим разработчикам ПО в нелегком деле изучения языка программирования C#. Я прекрасно помню, когда впервые познакомился с данным языком программирования и как впервые пытался написать программу. Я помню все трудности и не понятные моменты. Именно с ними я и хочу поделится со своими читателями.
Почему я начал писать о C#, а не о PHP или JavaScript? Ответ прост — C# самый читаемый раздел в моем блоге и именно по данному языку мне задают самое большое число вопросов.
Я буду очень признателен всем посетителям моего ресурса, которые будут помогать мне в написании данной методички (книги или что-бы из этого не получилось). Пишите свои отзывы, задавайте вопросы, указывайте не до конца раскрытые темы. Все это я буду учитывать и вносить необходимые правки.
Изучение языка программирования C# процесс сложный, если Вы не знакомы с объектно ориентированным программированием (ООП), но возможный. Так же Вам нужно иметь представление о том что такое компьютер и как он работает. Все, что я буду писать, будет ориентированно на людей — не знакомых с программированием, либо имеющим базовые навыки в данной области. Я не буду углубляться во все нюансы языка программирования CSharp, что бы не загружать Вас. А так же не буду описывать все типы данных, все ключевые слова и т.п. вещи. Моя задача донести базовые знания, отработав и запомнив которые, Вы сможете с легкостью изучать рассматриваемый язык более подробно самостоятельно.
Примечание: В качестве подготовительной работы Вам необходимо скачать Visual Studio C# с сайта Microsoft и установить его на свой компьютер. Именно в этой среде Вы можете создавать свои приложения.
И так! Начнем процесс обучения!
Язык программирования C# — ООП во всей красе. Даже самая примитивная программа будет реализована «сложно» в понятиях начинающего разработчика. Именно поэтому ключевым моментов изучения языка C# является понимание принципов ООП. Я не просто так выделил слово понимание — Вам необходимо именно понимать ООП, Вы можете выучить все принципы — но писать программы, а тем более дорабатывать сущесвующие, Вам будет сложно. И причина будет в том, что Вы не сможете пересказать принципы ООП своими словами, а значит не сможете понять то, как реализует эти принципы другой разработчик.
ООП конечно вещь хорошая, однако чтобы начать писать свои первые программы нужно знать еще некоторые вещи: типы данных, операции и конструкции языка. Именно о них я и расскажу сегодня. Вам нужно будет выучить эти вещи. Выучить так, что бы у Вас не было ни малейшего колебания в том какой тип данных Вам нужен, что Вам нужно писать чтобы объявить его или написать цикл, или условие.
Типы данных
Разрабатывая ПО, вы работаете с различной информацией, которая может быть выражена цифрами, предложениями, буквами, логическими следствиями и т.д. В связи с этим в C# были созданы следующие типы данных:
Int32 (или int) — тип данных для хранения целых чисел (1, 2, -100, 0, 23413123) в диапазоне от -2 147 483 648 до 2 147 483 647.
Int64 (или long) — тип данных для хранения целых чисел (1, 2, -100, 0, 23413123) в диапазоне от -9223372036854775808 до 9223372036854775807.
Double (или double) — тип данных для хранения десятичных чисел (1, 2.123, -100.11232345, 0, 23413123.1).
Boolean (или bool) — тип данных для хранения результата логического выражение. Принимает значение ИСТИНА (true) или ЛОЖЬ (false).
Char (или char) — тип данных для хранения одного символа (‘a’, ‘1’, ‘-‘, ‘ ‘). По своей сути данный тип — это число c кодом символа. Именно поэтому char может конвертироваться в int и наоборот.
String (или string) — тип данных для хранения строк. По своей сути данный тип — массив (поговорим о них позже) из символов char.
Пример использования:
Int32 int32_1 = 0; int int32_2 = -12345; Int64 int64_1 = 123456789; long int64_2 = -54545454545; Boolean bool_1 = false; bool bool_2 = true; Char char_1 = 'a'; char char_2 = 'b'; String string_1 = "Hello, my name is Boris!"; string string_2 = "Зе сан ис шанинг!";
Важно: Выше указаны далеко не все типы данных языка C#. Однако в начале Вашего пути их будет вполне достаточно
Важно: Любой тип данных может быть использован в массивах. Что это такое и зачем они нужны мы рассмотрим позже
Основные операции
Все мы знаем математику хотя бы на базовом уровне. А значит мы с легкостью можем запомнить несколько базовых математических операций с данными, которые мы можем использовать, программируя на языке C#.
+ — сложение чисел, либо «склеивание» (конкатенация) строк. Не применяется при работе с типами bool, char.
— — разница двух чисел.
* — умножение двух чисел.
/ — целая часть от деления двух чисел при использование типа int. Результат деления при использовании типа double.
% — остаток деления двух чисел. Именно остаток, а не дробная часть.
&& — логическое И. Применяется для типа bool.
|| — логическое ИЛИ. Применяется для типа bool.
! — логическое НЕ (отрицание). Применяется для типа bool.
>, <, >=, <=, ==, != — математические логические операторы больше, меньше, больше или равно, меньше или равно, равно — применяется для сравнения значений одинаковых типов данных (не всех, но об этом позже), не равно — так же применяется для сравнения значений одинаковых типов данных.
Важно: Для организации порядка данных операций используются скобки «(» и «)», которые работают согласно стандартным математическим правилам.
Пример использования:
int sum = -5 + 25; //sum = 20 double dif = 10.5 - 10.25; //dif = 0.25 string concat = "Hello," + " " + "World"; //concat = "Hello, World" int ceil = 10 / 3; //ceil = 3 int ost = 10 % 3; //ceil = 1 (10 = 3 * 3 + 1) double pr = 10.0 / 3; //pr = 3.33333... int mul = 10 * 10; //mul = 100 int expr1 = (2 + 2) * 2; //expr1 = 8 int expr2 = 2 + 2 * 2; //expr2 = 6 bool logic1 = true || false; //logic1 = true bool logic2 = true && true; //logic2 = true bool logic3 = false || false; //logic3 = false bool logic4 = false && false; //logic4 = false bool logic5 = !false; //logic5 = true bool logic6 = !true; //logic6 = false
Конструкции языка и ключевые слова
Основные конструкции языка программирования C# схожи с основными конструкциями любого другого языка. Их не много, но именно они позволяют нам создавать программы. С помощью них задается логика работы Вашего кода.
return [значение] — служит для выхода из функции либо для возврата значения из функции. Об этом мы поговорим немного позже.
break — служит для прерывания выполнения цикла.
if(условие) { код если условие верно } [else { код если условие не верно }] — условный оператор. позволяет Вам выполнять (либо не выполнять) те или иные действия в зависимости от сложившихся условий. Конструкция else { } не является обязательной. Вы можете не указывать ее, если Вам она не нужна.
Примечание: Как Вы могли заметить, все что указано в квадратных скобках «[«, «]» — это необязательные элементы.
Пример:
int a = 10; if(a > 50) { a = a + 20; //прибавляем к a 20 если значение a больше 50 } else { a = a + 10; //прибавляем к a 10 если значение a меньше либо равно 50 }
for(объявление переменных цикла; условие выхода из цикла; обработка шага цикла) { код цикла } — цикл. Цикл — это кусок кода, который повторяется до тех пор, пока условие выхода из него не будет выполнено. FOR отлично подходит в случаях если Вы работаете с массивами, либо Вам нужно иметь возможность определить текущую итерацию цикла.
Пример:
int sumOfI = 0; int sumOfK = 0; for(int i = 0; i < 5; i = i + 1) { sumOfI = sumOfI + i; //* } for(int k = 5; k > 1; k = k - 2) { sumOfK = sumOfK + k; //** }
*Примечание к примеру: данная строчка будет выполнена 5 раз при i равным 0, 1, 2, 3, 4. Так сложилось, что в программировании нумерация идет с нуля, а не с единицы. В связи с этим в FOR обычно используют условие < а не <= (в нашем случае < 5). К этому стоит привыкнуть. Начинающие программисты обычно забывают про нумерацию с нуля. Это нормально. Попрактиковавшись, нумерация с нуля станет для Вас вполне нормальной. После выполнения данного цикла значение sumOfI будет равно 0 + 1 + 2 + 3 + 4 = 10.
**Примечание к примеру: данная строчка будет выполнена 2 раза при k равным 5, 3. Следовательно после выполнения цикла значение переменной sumOfK равно 5 + 3 = 8;
while(условие) { код цикла } — цикл. Делает тоже самое что и цикл FOR. Удобен при организации бесконечных циклов и циклов со сложным условием выхода.
Пример:
int sum = 1; while(sum % 4 != 0) { sum = sum + 2; //* }
*Примечание к примеру: Как Вы могли догадаться данный цикл будет выполнятся до тех пор пока значение переменной sum не будет кратно четырем (остаток от деления на 4 равен нулю). Можете подсчитать сколько итераций цикла выполнится в данном коде? Если Вам это пока сложно сделать, то ответ: бесконечно много. К сожалению если постоянно прибавлять к единице число 2 мы никогда не получим число кратное 4. Значит данный цикл будет выполнятся вечно, что приведет к зависанию Вашей программы. Давайте исправим данную ошибку.
int sum = 1; int count = 0; while(sum % 4 != 0) { if(count == 10) { break; //Принудительно выходим из цикла, если за 10 итераций мы так и не получили в sum число которое делится на 4 без остатка } sum = sum + 2; count = count + 1; }
На этом я хочу завершить свое повествование. Я рассказал Вам о самых базовых элементах языка программирования C#. Постарайтесь выучить их. Попрактикуйтесь в создании переменных, циклов и условий. В следующих главах я буду постепенно рассказывать Вам о новых ключевых словах, типах данных и конструкциях языка. Однако для простоты восприятия настоятельно рекомендую Вам расположить материал данный статьи по полочкам в своей голове, что бы он не начал пересекаться с новой информацией.