Лекции по языку программирования си шарп

1 Основные сведения о C#

Язык C# происходит от двух распространённых языков программирования: C и C++. От языка C он унаследовал синтаксис, многие ключевые слова и операторы, а от C++ – усовершенствованную объектную модель. Кроме того, C# близко связан с Java 1 . Имея общее происхождение, но во многом отличаясь, С# и Java похожи друг на друга как близкие, но не кровные родственники. В обоих языках поддерживается распределённое программирование и применяется промежуточный код для обеспечения безопасности и переносимости, но отличия кроются в деталях реализации. Кроме того, в обоих языках предоставляется немало возможностей для проверки ошибок при выполнении, обеспечения безопасности и управляемого исполнения, хотя и в этом случае отличия кроются в деталях реализации. Но в отличие от Java язык С# предоставляет доступ к указателям – средствам программирования, которые поддерживаются в C++. Следовательно, С# сочетает в себе эффективность, присущую C++, и типовую безопасность, характерную для Java. Более того, компромиссы между эффективностью и безопасностью в этом языке программирования тщательно уравновешены и совершенно прозрачны. Однако по сравнению с C++, С# имеет ряд отличий, упрощающих синтаксис и устраняющих вероятность появления некоторых ошибок в программах.

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

К особенностям языка C# (некоторые особенности заимствованы из C++) можно отнести следующие: язык является объектно-ориентированным, поэтому:  даже простейшая программа состоит, как минимум, из одного класса;  отсутствуют глобальные переменные и методы;  простейшие типы являются классами и поддерживают ряд базовых операций; язык чувствителен к регистру символов, т.е. идентификаторы count и Count считаются различными; при использовании методов требуется указание после идентификатора метода круглых скобок, даже если метод не имеет параметров; переменные могут быть описаны в любом месте программы, при этом область видимости переменных зависит от места (блока программы) их описания; все массивы могут изменять размеры (фактически путём создания нового массива); идентификаторы переменной и типа могут совпадать; используется «сборка мусора», поэтому явное освобождение памяти во многих случаях не используется. 1 Здесь и далее некоторые фрагменты конспекта взяты из книг: Шилдт Г. C# 3.0: Полное руководство / Г. Шилдт.–М.: ООО «И.Д. Вильямс»,2010.–992 с.:ил. Шилдт Г. C# 4.0: Полное руководство / Г. Шилдт.–М.: ООО «И.Д. Вильямс»,2011.–1056 с.:ил.

Читайте также:  Css страница фиксированной ширины

1.2 Типы данных

Любые данные, используемые в программе, размещаются в оперативной памяти компьютера. Для того чтобы программа могла правильно интерпретировать содержимое памяти, ей требуется знать структуру данных, хранящихся в этой памяти, которая определяется типом данных . Типы данных могут быть как заранее предопределёнными в среде программирования, так и созданными программистом при разработке программы. В C# все общие типы данных делятся на два вида: типы значения и ссылочные типы . Переменные типа значения содержат сами значения, в то время как переменные ссылочного типа содержат ссылку на место в памяти, где значения можно найти. Также переменная ссылочного типа может содержать значение null , говорящее о том, что переменная ни на что не указывает. Общая структура типов приведена на рисунке 1.1. Рисунок 1.1 – Структура типов данных Целочисленные типы данных . Целочисленные типы данных (см. таблицу 1.1) отличаются друг от друга размером занимаемой памяти и, следовательно, диапазоном целых чисел, которые они могут хранить. Таблица 1.1 – Характеристика целочисленных типов данных 1

Наименование Размер, Диапазон значений
байт
byte 1 0…255
sbyte 1 –128 … 127

1 Здесь и далее все значения даются для среды программирования Microsoft Visual C# 2008 Express Edition.
Продолжение таблицы 1.1

Наименование Размер, Диапазон значений
байт
char 1 2 от U+0000 до U+ffff
short 2 –32,768 … 32,767
ushort 2 0 … 65 535
int 4 –2 147 483 648 … 2 147 483 647
uint 4 0 … 4 294 967 295
long 8 –9 223 372 036 854 775 808 …
9 223 372 036 854 775 807
ulong 8 0 … 18 446 744 073 709 551 615

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

Читайте также:  Максимальное целое число javascript
Наименование Размер, Приблизительный диапазон Число десятичных
байт значений знаков
float 4 От ±1,5e−45 до ±3,4e38 7
double 8 От ±5,0e−324 до ±1,7e308 15-16

Десятичный тип данных decimal предназначен для применения в финансовых расчётах. Этот тип имеет разрядность 16 байт для представления числовых значений в пределах от ±1,0e−28 до ±7,9e28. При обычных арифметических вычислений с плавающей точкой характерны ошибки округления десятичных значений. Эти ошибки исключаются при использовании типа decimal , который позволяет представить числа с точностью 28-29 десятичных разрядов. Благодаря тому что этот тип данных способен представлять десятичные значения без ошибок округления, он особенно удобен для расчётов, связанных с финансами. Логический тип данных имеет наименование bool и может принимать одно из двух значений: true (истина) или false (ложь). Символьный тип данных , предназначенный для хранения одного символа Юникода, имеет наименование char . Символ задаётся в апострофах (одиночных кавычках). Строковый тип данных имеет наименование string и предназначен для хранения последовательности символов (данный тип будет рассмотрен ниже в отдельном разделе). Строковые константы задаются в кавычках. Составные и более сложные типы данных будут рассмотрены ниже. 1 В большинстве случаев используется для хранения символьных данных. Для целочисленных значений лучше не использовать.

Числовые типы данных обладают некоторыми методами и полями, среди которых можно выделить: Parse(s) – преобразует строку s в число соответствующего типа, например int.Parse(«1») преобразует строку «1» в число 1 типа int . В методе Parse могут быть указаны дополнительные параметры, характеризующие допустимые для преобразования форматы строки s ; TryParse(s, out r) – преобразует строку s в число соответствующего типа и записывает результат в r . Метод возвращает логическое значение, показывающее, было ли выполнено преобразование. В методе TryParse могут быть указаны дополнительные параметры, характеризующие допустимые для преобразования форматы строки s . Например double.TryParse(«1.2», out d) вернёт true , если разделителем дробной и целой части является точка. MinValue, MaxValue – возвращает минимальное или максимальное значение для заданного типа, например int.MaxValue вернёт максимальное значение для типа int .

Читайте также:  Check the domain name php

1.3 Переменные

Для описания переменных используется конструкция, формальное описание которой 1 имеет вид: <тип данных>[=] [, [=] . ]; Примеры : double d; int a, b=10; int c = b+7; int d = 0xFF; // d = 255; Если при описании переменной ей сразу присваивается значение, и данная строчка выполняется несколько раз (например, в цикле), то значение присваивается переменной при каждом выполнении строки. Переменные могут быть типизированы неявно. В этом случае вместо типа данных указывается ключевое слово var и требуется обязательное применение бло- ка = . 1 При описании конструкций будут использоваться следующие обозначения: описывает блок, вместо которого требуется ввести необходимые данные. Однако выделенные жирным угловые скобки обязательны; [текст] описывает блок, использование которого необязательно. Однако выделенные жирным квадратные скобки обязательны и не образуют необязательного блока; … характеризует возможность повторения необязательного блока, внутри которого это обозначение находится.

Источник

Знакомство с C#

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

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

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

  • В браузере на платформе документации. В этом случае окно готового к запуску кода C# внедряется на страницы документации. Вы пишете и выполняете C# код в браузере.
  • В среде Microsoft Learn. Эта схема обучения содержит несколько модулей для изучения основ C# .
  • В Jupyter в проекте Binder. Вы можете поэкспериментировать с кодом C# в записной книжке Jupyter в проекте Binder.
  • На локальном компьютере. После изучения кода в интерактивном режиме можно скачать пакет SDK для .NET и создавать программы на компьютере.

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

Hello world

В руководстве Hello World вы создадите самую простую программу на C#. Вы ознакомитесь с типом string и способами работы с текстом. Можно также использовать схему обучения в Microsoft Learn или Jupyter в проекте Binder.

Числа в C#

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

В этом руководстве предполагается, что вы уже прошли занятие Hello World.

Ветви и циклы

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

В этом руководстве предполагается, что вы уже прошли занятия Hello World и Числа в C#.

Коллекция списков

Занятие Коллекция списков содержит обзор типа «Коллекция списков», в котором хранятся последовательности данных. Вы узнаете, как добавлять и удалять элементы, выполнять их поиск и сортировать списки. Вы ознакомитесь с различными типами списков. Это руководство можно изучить, используя локальный компьютер.

В этом руководстве предполагается, что вы уже прошли перечисленные выше занятия.

101 пример по LINQ

Для работы с этим примером требуется глобальный инструмент dotnet-try. После установки инструмента и клонирования репозитория try-samples можно изучить LINQ с помощью набора из 101 примера, которые можно запускать в интерактивном режиме. Вы можете исследовать различные способы отправки запросов к данным, исследования данных и преобразования последовательностей данных.

Источник

Руководство по C# — Часть 1

Данное руководство было создано для быстрого и наглядного обучения всем тонкостям программирования на языке C#.

Часть 1 — Часть 2

1. C# и платформа .NET

2. Создание приложений .NET с использованием C#

  • .NET Framework 4.0 SDK
  • Компилятор csc.exe
  • Типы приложений .NET
  • Работа с Visual Studio 2010
  • Создание проекта в VisualStudio 2010
  • Изучение проекта и заполнение его кодом
  • Компоновка проекта
  • Отладка кода
  • Рефакторинг кода
  • Расширение кода
  • Утилита Class Designer
  • Интегрируемая система документации .NET Framework 4.0

3. Основы C#

  • Основы объектно-ориентированного программирования
  • Простая программа на C#
  • Комментарии
  • Переменные
  • Область видимости переменных, константы
  • Типы данных
  • Литералы
  • Преобразования типов
  • Арифметические операторы
  • Операторы отношения и логические операторы
  • Оператор присваивания
  • Поразрядные операторы
  • Тернарный оператор
  • Условные операторы
  • Циклы for и while
  • Циклы do while и foreach
  • Операторы перехода

4. Массивы, кортежи и строки

5. Классы и объекты

  • Классы
  • Класс Object
  • Создание объектов
  • Методы
  • Конструкторы
  • Сборка мусора и деструкторы
  • Ключевое слово this
  • Доступ к членам класса
  • Модификаторы параметров
  • Необязательные и именованные аргументы
  • Рекурсия
  • Ключевое слово static
  • Индексаторы
  • Свойства
  • Модификаторы доступа в аксессорах

6. Перегрузка функций-членов класса

7. Наследование и полиморфизм

Источник

Оцените статью