ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.08.2024

Просмотров: 1102

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Основы c#. Урок 1. Что такое c#?

Основы c#. Урок 2. Что такое net Runtime?

Основы c#. Урок 3. Первая программа на c#

Основы c#. Урок 4. Переменные языка c#

Основы c#. Урок 5. Логические операторы

Основы c#. Урок 6. Массивы в c#

Основы c#. Урок 7. Операторы if и switch

Основы c#. Урок 8. Циклы for и foreach

Основы c#. Урок 9. Цикл while

Основы c#. Урок 10. Классы в c#

Основы c#. Урок 11. Конструкторы классов

Основы c#. Урок 12. Наследование

Основы c#. Урок 13. Запись в экземпляр базового класса экземпляра производного

Основы c#. Урок 14. Вложенные классы

Основы c#. Урок 15. Перегрузка бинарных операторов

Основы c#. Урок 16. Перегрузка унарных операторов

Основы c#. Урок 17. Область видимости

Основы c#. Урок 18. Виртуальные функции

Основы c#. Урок 19. Абстрактные классы

Основы c#. Урок 20. Запрещение наследования или модификатор sealed

Основы c#. Урок 21. Статические переменные

Основы c#. Урок 22. Статические методы класса

Основы c#. Урок 23. Статические конструкторы

Основы c#. Урок 24. Закрытые конструкторы или классы без экземпляров

Основы c#. Урок 25. Передача параметров переменой длины

Основы c#. Урок 26. Строки (класс System.String)

Основы c#. Урок 27. Строки (класс StringBuilder)

Основы c#. Урок 28. Передача параметров по ссылке и по значению (ref и out)

Основы c#. Урок 29. Пример передачи по ссылке

Основы c#. Урок 30. Перегрузка

Основы c#. Урок 31. Функции класса System.Array

Основы c#. Урок 33. События

Основы c#. Урок 35. Введение в атрибуты

Основы c#. Урок 36. Пример пользовательского атрибута.

Основы c#. Урок 37. Параметры командной строки

Основы c#. Урок 38. Метод Main в отдельном классе

Основы c#. Урок 39. Форматированный вывод

Основы c#. Урок 40. Класс System.Object

Основы c#. Урок 41. Методы класса System.Object

Основы c#. Урок 42. Переопределяем методы класса System.Object

Основы c#. Урок 43. Константы

Основы c#. Урок 44. Модификаторы доступа

Основы c#. Урок 45. Ссылка на текущий экземпляр класса (this)

Основы c#. Урок 47. Работаем со специальными папками

Основы c#. Урок 48. Получаем список всех дисков

Основы c#. Урок 49. Ввод/вывод в c# (System.Io)

Основы c#. Урок 50. Классы для работы с папками и файлами

Основы c#. Урок 51. Класс Directory

Основы c# Урок 52. Класс File

Основы c# Урок 53. Класс FileSystemInfo

Основы c# Урок 54. Класс DirectoryInfo

Основы c# Урок 55. Перечисление FileAttributes

Основы c# Урок 56. Класс FileInfo

Основы c# Урок 57. Пример: получение имен всех подпапок

Основы c#. Урок 1. Что такое c#?

C# (произносится Си-Шарп) - это новый язык программирования от компании Microsoft. Он входит в новую версию Visual Studio - Visual Studio.NET. Кроме C# в Visual Studio.NET входят Visual Basic.NET и Visual C++. Кроме того фирма Borland объявила, что последующие версии C++ Builder и Delphi будут поддерживать платформу .NET (последнее лежит в русле политики Borland - так, например, нынешние версии C++ Builder и Delphi поддерживают, например, такую технологию от Microsoft, как ActiveX).

Одна из причин разработки нового языка компанией Microsoft - это создание компонентно-ориентированного языка для новой платформы .NET. Другие языки были созданы до появления платформы .NET, язык же C# создавался специально под эту платформу и не несет с собой груза совместимости с предыдущими версиями языков. Хотя это не означает, что для новой плятформы это единственный язык.

Еще одна из причин разработки компанией Microsoft нового языка программирования - это создание альтернативы языку Java. Как известно, реализация Java у Microsoft не была лицензионно чистой - Microsoft в присущей ей манере внесла в свою реализацию много чего от себя. Компания Sun, владелица Java, подала на Microsoft в суд, и Microsoft этот суд проиграла. Тогда Microsoft решила вообще отказаться от Java, и создать свой Java-подобный язык, который и получил название C#. Что будет с Java после выхода C# - пока неизвестно. Скорей всего эти языки будут существовать оба, хотя ясно, что одна из целей разработки C# - это противоборство именно с Java (недаром C# называют еще Java-killer'ом).

Основы c#. Урок 2. Что такое net Runtime?

Если перевести слова NET Runtime на русский язык, то мы получим что-то вроде "Среда выполнения". Именно вы этой среде и выполняется код, получаемый в результате компиляции программы написанной на C#. NET Runtime основын не на ассемблере (т. е. не на коде, родном для процессора), а на некотором промежуточном коде. Отдаленно он напоминает виртуальную Java машину. Только если в случае Java у нас был только один язык для виртуальной машины, то для NET Runtime таких языков может быть несколько. Теоретически программа для среды NET Runtime может выполняться под любой операционной системой, в которой NET Runtime установлена. Но на практике пока единственная платформа для этого - это Windows.

NET Runtime состоит из нескольких частей. Одна из них - это Common Language Runtime. Это, говоря кратко, это некоторый набор стандартов, котрые должны поддерживать все языки платформы .NET. Например, в предыдущих версиях Visual Studio была такая проблема, что разные языки по разному хранили данные одного по идее типа. Так, скажем, тип целого в Visual Basic'е занимал два байта, а в Visual C++ - четыре. А это порождало кучу проблем при совместном использовании языков. Так вот, Common Language Runtime как раз в частности и определяет стандартные для все языков .NET типы данных. И уже есть гарантии, что целый тип в одном языке будет в точности соответствовать одноименному типу в другом.


Еще одна важная часть NET Runtime - это набор базовых классов. Их очень много (порядка несколько тысяч). Кроме того, эти классы относятся не к конкретному языку, а к NET Runtime. Т. е. мы получаем набор классов, общий для всех языков .NET, что достаточно удобно.

Далее. Именно NET Runtime берет на себя некоторые рутинные функции. Например в нем организована сборка мусора. И если раньше программисту приходилось самому освобождать объекты, созданные динамически, то теперь эту задачу берет на себя среда NET Runtime. Еще одно свойство среды NET Runtime - это проверка типов. Означает это вот что. Когда программа выполняется, то в принципе некоторой функции можно подсунуть параметр неправильного типа. Скажем вместо целого подставить действительное число или еще что-нибудь в этом роде. Языки типа C++ свои параметры функций не проверяют, в результате чего записанная переменная большего размера может повредить чужую область памяти и программа может просто рухнуть. Еще классический пример на эту тему - это выход за пределы массива. В NET Runtime же такого невозможно. NET Runtime сама позаботится о проверке типов и других вещах.

Существует несколько языков для NET Runtime. В настоящее время это C#, VB.NET и Visual C++. Кроме того фирма Borland объявила, что ее продукты C++ Builder и Delphi тоже будут поддерживать NET Runtime.


Основы c#. Урок 3. Первая программа на c#

Ну, хватит нам заниматься теорией. Пора переходить к практике. Пишем первую программу на C#. Запускайте Visual Studio.NET. Для создания нового пустого проекта C# нажимаем на кнопку в New Project (самая левая на панели инструментов), или нажимаем комбинацию клавиш Ctrl + Shift + N, или просто заходим в меню File и далее выбираем New и затем Project:

В появившемся окне New Project слева выбираем, естественно, Visual C#, а справа тип приложения - Console Application:

В качестве имени проекта (Name) напечатайте first или что-то в этом роде. Нажмитие на кпопку для закрытия данного диалогового окна.

Теперь приступаем к коду. Наша первая программа просто выведет некоторое фиксированное слово в консольное окошко. Вот ее листинг.

usingSystem;

namespacefirst

{

/// <summary>

/// Summary description for Class1.

/// </summary>

class Class1

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]

static void Main(string[] args)

{

//

// TODO: Add code to start application here

//

Console.WriteLine("Привет из C#");

}

}

}

Запускаем программу, нажав Ctrl+F5. Результат будет таким:

Разберем текст программы поподробнее. Как вы знаете из предыдущего урока, в .NET Runtime существуют пространства имен. Одно из таких пространств - это System. Вообще-то оно добавляется автоматически в любой проект на C#. Так как мы добавили в нашу программу строчку

...

usingSystem;

...

то мы можем вместо длинных имен использовать более короткие. В частности, вместо System.Console можно писать просто Console. Что мы делаем в строчке

...

Console.WriteLine("Привет из C#");

...

Далее мы в нашей программе оъявляем класс Class1. Что такое классы мы посмотрим в последующих уроках, сейчас же достаточно сказать, что в C# не существует глобальных функций, так что нам ничего не остается, как завести сначало класс и затем функцию Main в нем (функция Main обязательно должна быть в каждой программе на C#, и именно с этой функции и начинается выполнение программы. Обратите также внимание, что эта функция пишеться с прописной (большой) буквы. C# различает строчные и прописные буквы, так что это важно). Кроме того, эта функция объявлена с модификатором static. Это означает, что она не относится к конкретному экземпляру класса Class1, а прнадлежит всему классу. В нашей функции Main мы просто выводим на экран некоторую строчку методом WriteLine.


С первой программой на C# все.

Основы c#. Урок 4. Переменные языка c#

Для каждого типа данных C# существует соответствующий тип данных в CRL (Common Language Runtime). Подробности CRL см. в уроке 2. Это, в частности, означает, что каждый тип имеет два названия - полный (из CLR, его можно использовать в любом языке .NET) и сокращенный, который используется в C#. Что за название использовать - это дело вкуса. Но короткие названия во-первых, короче, и во-вторых, как-то привычнее, так что мы в наших уроках будем использовать короткие названия C#. На этом же уроке мы приведем как полные названия (из CLR), так и краткие.

Основные типы данных перечислены в следующей таблице:

Тип C#

Тип CLR

Размер в байтах

Пояснение

int

Int32

4

Целое (со знаком)

float

Single

4

Вещественное число

char

Char

-

Символ (Unicode)

bool

Boolean

-

Логический тип

short

Int16

2

Короткое целое (со знаком)

long

Int64

8

Длинное целое (со знаком)

string

String

-

строка

byte

Byte

1

байт

decimal

Decimal

8

Вещественное число фиксированной точности

Если вы предпочитаете использовать длинные имена, то вы должны писать что-то вроде System.Int32 для типа int и т. п. (т. е. приписывать слово System перед CLR-именем). Или же вы должны добавить строчку

usingSystem;

в начале программы (хотя, впрочем, она там скорей всего и так есть).

Таким образом следующие три объявления переменной k равносильны:

intk;

usingSystem;

...

Int32 k;

и

System.Int32 k;

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

Объявление переменной можно совместить с инициализацией (заданием начального значения):

intz=88;

Набор операторов для C# достаточно стандартен + , -, *, / - действуют как и в любом другом языке. Отметим только, что / (деление) применительно к целым числам дает целую часть от деления. Так, фрагмент


int k=100999, n=1000, s;

s=k/n;

Console.WriteLine(s.ToString());

выведет на экран 100, а не 101, т. е. никакого округления не происходит.

Есть еще один оператор - %. Это - остаток от деления. Следующий фрагмент выведет на экран 999:

int k=100999, n=1000, s;

s=k%n;

Console.WriteLine(s.ToString());

Как и в других C-подобных языках, в C# существуют операторы инкремента и декремента. Так, после следующего фрагмента k увеличится на 1, а n - уменьшится на 1:

k++;

n--;