Разное

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

C# уроки для чайников - обучение для начинающих

C# по праву входит в топ лучших языков, которые интенсивно развиваются и пользуются большим спросом на рынке ИТ. C# применяется начиная от простейших программ и до огромных веб-сервисов, через которые каждый день проходят миллионы клиентов.

Благодаря незаурядной мощности языка, на него пал выбор разработчиков движка Unity. Сегодня является одним из топовых движков для игр на Windows. Выпуск и активное использование движка пошли на руку C#, который стал ещё популярнее.

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

Если сравнить С# с прочими языками, его можно назвать довольно молодым, хотя за плечами уже пройден немалый путь. Впервые полноценная версия языка появилось после выхода Microsoft Visual Studio .NET, событие датируется февралём 2002 года. На сегодня актуальная версия - C# 7.0, выпущенная 7.03.2017 параллельно с Visual Studio 2017.

В C Sharp используется синтаксис, сильно напоминающий Си и приближённый к С++, Java. Если есть познания в одном их перечисленных языков, изучить C# станет значительно легче. Это объектно-ориентированный язык, который немало позаимствовал из С++ и Java. Для примера, С# обладает поддержкой наследственности, полиморфизма, повторную загрузку операторов, статической типизации. Такой подходит помогает в решении распространённых задач в сфере разработки крупных приложений, сохраняющих гибкость, расширяемость и масштабируемость. C# всё ещё развивается, после каждого дополнения в языке появляются новые функции, преимущественно довольно полезные. Среди них: асинхронная работа, переменное связывание, лямбды и т. п.

Какова роль .NET?

Если речь заходит о C#, часто подразумеваются технологии, связанные с платформой .NET (WPF, ASP.NET). То же самое справедливо в обратном направлении, говоря про .NET, думают про C#. Безусловно, понятия имеют жёсткую взаимосвязь, но не являются синонимами. C# - это язык, созданный для взаимодействия с фреймворком .NET. Тем не менее .NET – это довольно широкое понятие.

Сейчас вспоминаются слова Билла Гейтса, не дословно, но смысл таков: «Платформа .NET – лучшее творение Microsoft». Может так и есть, ведь фреймворком очень мощный и постоянно используется в разработке приложений.

Ключевые черты платформы:

  • Работает параллельно с разными языками. Популярностью С# во многом обязан общеязыковой среде CLR. Сейчас платформа способна работать с С#, VB.NET, C++, F#, но и на этом список не заканчивается, ведь она работает с диалектами, что привязаны к .NET (наподобие Delphi.NET). После компиляции кода с любого из перечисленных языков, вся интерпретируется в общий язык CIL – это своеобразный ассемблер для .NET. Такой подход позволяет использовать несколько языков для создания подключаемых модулей программы;
  • Кроссплатформенность. Данную платформу реально переносить, хоть и есть отдельные ограничения. Сегодня актуальная версия фреймворка работает на всех поддерживаемых Виндовс: от Windows Vista до «десятки». За счёт проекта Mono появилась возможность разрабатывать программы под Linux (различные дистрибутивы), Android и iOS;
  • Обширная библиотека классов. .NET Framework обладает единой, унифицированной библиотекой классов, с которой работают все поддерживаемые языки. Библиотека классов пригодится при создании любых программ: от блокнота до огромного веб-сайта;
  • Масса встроенных технологий. Среда CLR в сочетании с библиотекой классов – это основа для большого пакета вспомогательных технологий. Их могут использовать все программисты во время разработки приложений. В качестве примера, при взаимодействии с базами данных можно использовать технологию ADO.NET. Во время создания графических редакторов с многочисленными функциями удобно использовать WPF. Во время веб-разработки наверняка используют ASP.NET.

Стоит упомянуть об одной особенности фреймворка и языка – автоматическая очистка хлама в памяти. Таким образом отпадает необходимость вспоминать, и вручную задавать код для высвобождения занятой памяти. Среда CLR без дополнительных команд позаботится о сборе мусора и его удалении.

Управляемый и неуправляемый код

Некоторые читатели уже слышали, когда о приложении, построенном на С#, говорят – управляемый код. Какой смысл этого выражения? Это означает, что программа базируется на .NET и поддерживает управление общеязыковой средой CLR. Вы же помните, как CLR самостоятельно очищает память. Существуют и другие приложения, разрабатываемые на C++, они не преображаются в унифицированный CIL-язык (свойственный для С#, VB.NET). На выходе – это стандартный машинный код. Таким приложением .NET не может управлять.

При этом платформа .NET позаботилась о том, чтобы была возможность работать даже с неуправляемым кодом. Помимо обычных классов, предоставляемых библиотекой .NET, есть возможность применять сборки COM.

JIT-компиляция

Исходный код C# компилируется в программы или отдельные сборки на CIL с расширениями dll, exe. В процессе запуска готового приложения выполняется JIT-компиляция – это сокращение от Just-In-Time (Просто сейчас). На выходе получается машинный код, который передаётся на исполнение.

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

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

Это все базовые знания, которые нужно иметь в отношении платформы .NET

Дополнительные курсы

На нашем сайте вы можете найти дополнительные курсы по языку C#. Все курсы представлены на этой странице.

itproger.com

Си шарп для начинающих

Содержание.

Часть 1. Базовые сведения о программировании на языке C# 11

Глава 1. Общие сведения о языке C# и платформе .NET 13
.NET Framework для пользователей 17
.NET Framework для разработчиков 17

Глава 2. Средства создания приложений на языке C# 19
Описание средств 19
Интегрированная среда SharpDevelop для создания приложений на языке C# 23

Глава 3. Базовые типы данных, переменные

33
Переменные 37
Тип целочисленных данных 38
Тип данных с плавающей точкой 40
Десятичный тип данных 41
Первые программы 43
Логический тип данных 49
Оператор for 50
Символьные типы данных 54
Тип char 55
Тип string 60
Программы работы с переменными типа string 62
Программа для проверки некоторых базовых функций работы со строками 63
Программа копирования символьного файла 65
Ввод текста 66
Подсчет количества введенных строк 68
Подсчет количества слов в тексте 70
Тип var 72
Некоторые обобщения по объявлению и работе с переменными 73
Объявление констант 73
О преобразовании данных разных типов 74
Арифметические действия 76
Простые операторы 76
Порядок выполнения арифметических операторов 78
Оператор присваивания 78
Операторы инкремента и декремента 79
Операторы сравнения 79
Логические операторы 80
Операторы сдвига 82

Глава 4. Функции 85
Создание некоторых функций 90
Оператор if 93
Оператор goto 94
Функция выделения подстроки из строки 94
Функция копирования строки в строку 97
Функция с выходными параметрами 100
Переключатель switch 102

Область действия переменных 105
Рекурсивные функции 106

Глава 5. Массивы 107
Одномерные массивы 107
Оператор for each 111
Многомерные массивы 113
Глава 6. Еще раз о функциях консольного ввода-вывода 115
Ввод 115
Вывод 116

Глава 7. Работа с датами и перечислениями 121
Даты 121
Форматный вывод дат 122
Операции с датами 125
Перечисления 128
Типы перечислений как битовые флаги 133

Часть 2. Объектно-ориентированное программирование 135

Глава 8. Введение в классы 137
Ключевое слово this 146
Ключевое слово static 147
Статический конструктор 149
Статические классы 149
Принципы объектно-ориентированного программирования 150
Инкапсуляция 150
Инкапсуляция с использованием методов get и set 152
Инкапсуляция с использованием свойств 155
О доступности и статичности свойств 160
Автоматические свойства 160
Инициализация объекта 161
Организация работ при описании класса. Атрибут partial 163
Наследование 167
Запрет на наследование 171
Конструкторы и наследование 171
Добавление к классу запечатанного класса 175

Вложенность классов 177
Полиморфизм 178
Абстрактные классы 182
Сокрытие членов класса 183
Приведение классов к базовому и производному 184
Тернарный условный оператор 184
Операторы as и is 185
Структуры 191
Резюме 193

Глава 9. Обработка исключительных ситуаций 195
Блоки try и catch 195
Блок finally 200

Глава 10. Интерфейсы 203

Глава 11. Сборки, манифесты, пространства имен. Утилита IL DASM 211
Сборки 212
Пространства имен 214

Глава 12. Коллекции. Обобщения 223
Коллекции 223
Интерфейсы Œnumerable и lEnumerator 229
Создание собственного класса коллекций 233
Интерфейс IDictionary 242
Итератор 254
Получение копий 255
Классы Array и List<T> 258
Класс Array 258
Класс List< Т> 271
Интерфейс IList 277
Создание сравнимых объектов 283
Обобщения 286
Ограничения для параметров типа 292

Глава 13. Делегаты и события 293
События 295
Анонимные методы 302
Лямбда-выражения 306
Лямбда-операторы 308

Глава 14.

Введение в запросы LINQ 311
Три части операции запроса 312
О применении типа var в запросе 326

Глава 15. Некоторые сведения о процессах и потоках Windows 327
Вывод списка процессов 330
Вывод информации по процессу 332
Потоки процесса 333
Модули процесса 340
Запуск и остановка процессов в программе 343

Глава 16. Файловый ввод-вывод 349
Класс Directory Info 350
Класс Directory 354
Класс Drivelnfo 356
Класс Filelnfo 358
Класс File 363
Класс Stream 366
Класс FileStream 367
Классы Stream Writer, StreamReader 369
Классы StringWriter и StringReader 378
Класс StringReader 384
Классы BinaryWriter и BinaryReader 385

Глава 17. Работа в многопоточном режиме 391
Класс Thread 393
Программное создание вторичных потоков 396
Класс AutoResetEvent 406
Проблемы разделения ресурсов 411
Класс Timer 413

Глава 18. Приложения типа Windows Forms 417
Создание пользовательского интерфейса 420
Типы System.EventArgs и System.EventHandler 426
Предметный указатель 429

www.htbook.ru

Основы программирования на C#

Существует огромное количество людей, которые интересуются компьютерными технологиями, их еще можно назвать гиками. Рано или поздно такому энтузиасту приходит в голову мысль о создании своих собственных прикладных программ, конечно в этом случае речь не идет о новой операционной системе, скорее о простеньком приложении а-ля математический калькулятор. Многие школьники, которые только начали изучать Visual Basic на уроках информатики, мечтают создать собственную игру и т.п. Конечно можно начать с логарифмической линейки и пройти весь путь матерого программиста, но можно и почти мгновенно окунуться в мир программирования, естественно, не для практического опыта а для ознакомления с целью вовлечения! Существуют языки программирования традиционно наиболее подходящие для обучения, но в процессе освоения обучающихся отпугивает большой, непонятный исходный код примеров программ, сложности с настройкой инструментария, непривычные среды исполнения программы, такие как запуск в интерпретаторе команд. Исходя из этих соображений многие педагоги рекомендуют делать первые шаги с современным и активно развивающимся языком C# или

C Sharp, который базируется на программной платформе .NET Framework.

В этой статье я коротко изложу теорию предназначения и работы с языком C Sharp, а так же суть работы с программой для создания проектов на различных языках программирования — Visual Studio. Вы спросите, почему именно Visual Studio, потому что это наиболее оптимальная программа для создания подобных проектов. Надо сказать, что программировать на всех представленных в VS языках можно и в других средах или редакторах, но в качестве IDE для C# программирования явных конкурентов у VS пока не существует или они находятся на «незрелой» стадии развития. Благодаря Visual Studio мы без всяких затруднений можем создать любой интерфейс программы (GUI или UI), любые параметры обработки информации. В этой статье также будет приведен пример работы в этой IDE. А в моих следующих статьях я помогу вам создать свои первые программы — такие как калькулятор, простые игры и многое другое. Но для начала давайте рассмотрим возможности Visual Studio.

Возможности Visual Studio

Приступив к изучению C# мы получаем целую связку готовых для работы решений, многие из них предоставляются бесплатно, например, одна из современных версий Visual Studio. Благодаря простому интерфейсу программы, с ней не тяжело разобраться. С помощью VS мы можем создавать программы на таких известных языках программирования как: C, C++, C#, Visual Basic и т.д. На всех этих языках в VS мы можем создать любое приложение, любого формата — консольное приложение, обычную Windows форму, приложение для Windows Phone смартфона, библиотеку классов и тому подобные приложения. Студия очень удобна тем, что там не нужно прописывать абсолютно все коды элементов в ручном режиме (как в простом текстовом редакторе), в среде уже готовы все коды элементов управления (кнопки, чек-боксы, текстовые окна и тому подобные элементы). Что же из себя представляет C# (произносится как си шарп) непосредственно как язык?

  1. C# — является наследственным сыном двух мощных языков — C++ и Java,
  2. C# — очень удобен в использовании (написании программ), у него достаточно простой синтаксис и мощные сигнатуры, благодаря которым мы можем создать базы данных не хуже чем SQL или LINQ,
  3. C# — сейчас очень распространен и является одним из самых оптимальных языков программирования.

История появления C#

История си шарп — является недавней. Язык появился на свет в июне 2000 г. в результате кропотливой работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом (Anders Hejlsberg). Этот человек известен как автор одного из первых компилируемых языков программирования для персональных компьютеров IBM — Turbo Pascal. Наверное, на территории бывшего Советского Союза многие разработчики со стажем, да и просто люди, обучавшиеся в той или иной форме программированию в вузах, испытали на себе очарование и удобство использования этого продукта. Кроме того, во время работы в корпорации Borland Андерс Хейлсберг прославился созданием интегрированной среды Delphi (он руководил этим проектом вплоть до выхода версии 4.0).

Появление языка си шарп и инициативы .NET отнюдь не случайно пришлось на начало лета 2000 г. Именно к этому моменту компания Microsoft подготовила промышленные версии новых компонентных технологий и решений в области обмена сообщениями и данными, а также создания Интернет-приложений (COM+, ASP+, ADO+, SOAP, Biztalk Framework). Несомненно, лучшим способом продвижения этих новинок является создание инструментария для разработчиков с их полноценной поддержкой. В этом и заключается одна из главных задач нового языка. Кроме того Microsoft не могла больше расширять одни и те же инструменты и языки разработки, делая их все более и более сложными для удовлетворения конфликтующих между собой требований поддержки современного оборудования и обеспечения обратной совместимости с теми продуктами, которые были созданы в начале 1990-х гг. во время первого появления Windows. Наступает момент, когда необходимо начать с чистого листа для того, чтобы создать простой, но имеющий сложную структуру набор языков, сред и средств разработки, которые позволят разработчику легко создавать современные программные продукты.

С# и .NET являются той самой отправной точкой. Если говорить упрощенно, то .NET представляет собой новую платформу, новый API для программирования в Windows, а С# ее новый язык, созданный с нуля, для работы с этой платформой, а также для извлечения всех выгод из прогресса сред разработки и нашего понимания принципов объектно-ориентированного программирования в течение последних 20 лет.

Необходимо отметить, что обратная совместимость не потеряна. Существующие программы будут выполняться, а платформа .NET была спроектирована таким образом, чтобы она могла работать с имеющимся программным обеспечением. Связь между компонентами в Windows сейчас почти целиком осуществляется при помощи СОМ. С учетом этого .NET обладает способностью создавать оболочки (wrappers) вокруг существующих компонентов СОМ, так что компоненты .NET могут общаться с ними, и создавать оболочки вокруг компонентов .NET, что позволяет им выглядеть как обычные СОМ-компоненты.

Авторы C# стремились создать язык, сочетающий простоту и выразительность современных объектно-ориентированных языков (вроде Java) c богатством возможностей и мощью C++. По словам Андерса Хейлсберга, C# позаимствовал большинство своих синтаксических конструкций из C++. В частности, в нем присутствуют такие удобные типы данных, как структуры и перечисления (другой потомок C++ — Java лишен этих элементов, что создает определенные неудобства при программировании). Синтаксические конструкции С# унаследованы не только от C++, но и от Visual Basic. Например, в С#, как и в Visual Basic, используются свойства классов. Как и C++ позволяет производить перегрузку операторов для созданных вами типов, Java не поддерживает ни ту, ни другую возможность. С# — это фактически гибрид разных языков, при этом синтаксически не менее (если не более) чист чем Java, так же прост как Visual Basic, и обладает практически той же мощью и гибкостью, что и C++.

Особенности С#


Одной из областей, для которых не предназначен этот язык, являются критичные по времени и высокопроизводительные программы, когда имеет значение, занимать исполнение цикла 1000 или 1050 машинных циклов, и освобождать ресурсы требуется немедленно. C++ остается в этой области наилучшим из языков низкого уровня. В С# отсутствуют некоторые ключевые моменты, необходимые для создания высокопроизводительных приложений, в частности подставляемые функции и деструкторы, выполнение которых гарантируется в определенных точках кода.


  1. Полный и хорошо определенный набор основных типов.
  2. Встроенная поддержка автоматической генерации XML-документации.
  3. Автоматическое освобождение динамически распределенной памяти.
  4. Возможность отметки классов и методов атрибутами, определяемыми пользователем. Это может быть полезно при документировании и способно воздействовать на процесс компиляции (например, можно пометить методы, которые должны компилироваться только в отладочном режиме).
  5. Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).
  6. Указатели и прямой доступ к памяти, если они необходимы. Однако язык разработан таким образом, что практически во всех случаях можно обойтись и без этого.
  7. Поддержка свойств и событий в стиле VB.
  8. Простое изменение ключей компиляции.
  9. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).
  10. Возможность использования С# для написания динамических web-страниц ASP.NET

Теоретические основы программирования на C# was last modified: Март 3rd, 2016 by Admin

compuzilla.ru

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

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