SlideShare une entreprise Scribd logo
1  sur  14
Язык программирования C# Дмитрий Сошников dmitryso@microsoft.com
Платформа .NET C# Visual Basic .NET F# Managed C++ … Платформа Microsoft .NET Исполнитель byte-code Библиотека Операционная система Аппаратура компьютера (процессор, память, …)
Особенности C# Мультипарадигмальный язык Императивный Объектно-ориентированный Функциональный Что нужно для программирования? .NET Framework SDK Visual Studio Professional/Ultimate (2010) Visual Studio C# Express (2010)
Минимальная программа на C# using System; namespaceMyApplication { classProgram     { staticvoid Main(string[] args)         { Console.WriteLine("Hello, World!");         }     } }
Переменные и типы данных int – целый тип float – вещественный тип double – вещественный с двойной точностью bool – логический (значения true/false) Массивы, ссылки, делегаты, … Объектный MyObject, List<bool>, …
Оператор присваивания using System; namespaceMyApplication { classProgram     { staticvoid Main(string[] args)         { float a = float.Parse(args[0]); float b = float.Parse(args[1]); float c = float.Parse(args[2]); var d = b * b - 4 * a * c; var x1 = -b + Math.Sqrt(d) / 2 / a; var x2 = -b - Math.Sqrt(d) / 2 / a; Console.WriteLine("x1={0}, x2={1}", x1, x2);         }     } }
Операторы передачи управления Условный оператор if-then-else Циклы С предусловием while … do С постусловием do … while Со счётчиком for
Условный оператор using System; namespaceMyApplication { classProgram     { staticvoid Main(string[] args)         { float a = float.Parse(args[0]); float b = float.Parse(args[1]); float c = float.Parse(args[2]); var d = b * b - 4 * a * c; if (d>=0)             { var x1 = -b + Math.Sqrt(d) / 2 / a; var x2 = -b - Math.Sqrt(d) / 2 / a; Console.WriteLine("x1={0}, x2={1}", x1, x2);             } elseConsole.WriteLine("No solutions"); }     } }
Цикл со счётчиком, функции using System; namespace ConsoleApplication2 { classProgram     { staticint fact(int x)         { int f = 1; for (int i = 1; i <= x; i++)             {                 f = f * i;             } return f;         } staticvoid Main(string[] args)         { for (var i = 1; i < 10; i++)             { Console.WriteLine("{0}!={1}", i, fact(i));             } Console.ReadKey();         }     } }
Классы, объекты classPerson     { public Person(string n) { Name = n; } public Person(string n, Person f, Person m)         {             Name = n; Father = f; Mother = m;         } publicPerson Father, Mother; publicstring Name { get; set; } publicvoid Introduce()         { Console.WriteLine("I am {0}, my father is {1}, mother is {2}",  Name, Father.Name, Mother.Name);         }     } varV = newPerson("Vasya",newPerson("Petya"), newPerson("Masha")); V.Introduce();
Полезные классы в библиотеке Списки List<…> Словари Dictionary<TKey,TValue> Работа с XML, сетевыми подключениями, сжатие данных, криптография, графика, … varL = newList<Person>(); L.Add(V); L.Add(newPerson("Jack",V,newPerson("Katya"))); L.Sort(newComparison<Person>((p1, p2) => string.Compare(p1.Name, p2.Name))); foreach(var x in L) Console.WriteLine(x.Name); L.ForEach(P => P.Introduce());
C# - не только для консольного программирования! Windows Forms Windows Presentation Foundation ASP.NET Web Forms ASP.NET MVC Silverlight XNA Game Studio (Windows, XBox, Windows Phone 7, Zune) Windows Phone 7 (Silverlight, XNA) XBox (XNA)
Дополнительные ресурсы для изучения Центр начинающего разработчика: http://msdn.microsoft.com/ru-ru/beginner/default.aspx Книга «C# для начинающих» – скачать PDF или читать онлайн http://msdn.microsoft.com/ru-ru/beginner/ee344863.aspx Интернет-университет Intuit.ru Основы программирования на C#: http://www.intuit.ru/department/pl/csharp/ Введение в программирование на C# 2.0: http://www.intuit.ru/department/pl/csharp20/ MSDN: Центр Visual C#: http://msdn.microsoft.com/ru-ru/vcsharp/default.aspx Интерактивный учебник по C#
Console.WriteLine(“Thank.You!”); Дмитрий Сошников dmitryso@microsoft.com, dmitri@soshnikov.com http://www.soshnikov.com http://blogs.msdn.com/sos http://twitter.com/shwars

Contenu connexe

Tendances

1 вводное занятие
1 вводное занятие1 вводное занятие
1 вводное занятиеluis_blanco_rau
 
Cpp/cli types
Cpp/cli typesCpp/cli types
Cpp/cli typesmcroitor
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияPlatonov Sergey
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++mcroitor
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Platonov Sergey
 
Абстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиАбстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиOlga Maksimenkova
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановYandex
 
библиотеки программирования
библиотеки программированиябиблиотеки программирования
библиотеки программированияmcroitor
 
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмовAndrey Dolinin
 
Статический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутСтатический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутAndrey Karpov
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данныхAndrey Dolinin
 
C++ и базы данных
C++ и базы данныхC++ и базы данных
C++ и базы данныхmcroitor
 
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...Iosif Itkin
 

Tendances (20)

1 вводное занятие
1 вводное занятие1 вводное занятие
1 вводное занятие
 
Cpp/cli types
Cpp/cli typesCpp/cli types
Cpp/cli types
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
 
Абстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиАбстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, списки
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
Статический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий ЛевановСтатический и динамический полиморфизм в C++, Дмитрий Леванов
Статический и динамический полиморфизм в C++, Дмитрий Леванов
 
библиотеки программирования
библиотеки программированиябиблиотеки программирования
библиотеки программирования
 
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмов
 
Статический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутСтатический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минут
 
8 3-4
8 3-48 3-4
8 3-4
 
8 3-3
8 3-38 3-3
8 3-3
 
8 3-5
8 3-58 3-5
8 3-5
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данных
 
C++ и базы данных
C++ и базы данныхC++ и базы данных
C++ и базы данных
 
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
 

En vedette

Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Vadim Martynov
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#Nitrosalat
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных системKewpaN
 

En vedette (6)

Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#
 
Лекция 1. Введение в Android.
Лекция 1. Введение в Android.Лекция 1. Введение в Android.
Лекция 1. Введение в Android.
 
Управление данными (sql)
Управление данными (sql)Управление данными (sql)
Управление данными (sql)
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем
 

Similaire à Язык программирования C#

Интерфейсы
ИнтерфейсыИнтерфейсы
ИнтерфейсыREX-MDK
 
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Dmitry Stropalov
 
Разработка крупного Standalone проекта на юнити: улучшаем производительность
Разработка крупного Standalone проекта на юнити: улучшаем производительностьРазработка крупного Standalone проекта на юнити: улучшаем производительность
Разработка крупного Standalone проекта на юнити: улучшаем производительностьВадим Воробьев
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Vladimir Kochetkov
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программированияguestfc8ae0
 
C#. От основ к эффективному коду
C#. От основ к эффективному кодуC#. От основ к эффективному коду
C#. От основ к эффективному кодуVasiliy Deynega
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorDevGAMM Conference
 
C++ refelection and cats
C++ refelection and catsC++ refelection and cats
C++ refelection and catscorehard_by
 
Архитектура корпоративных систем
Архитектура корпоративных системАрхитектура корпоративных систем
Архитектура корпоративных системConstantin Kichinsky
 
[JAM 1.1] Clean Code (Paul Malikov)
[JAM 1.1] Clean Code (Paul Malikov)[JAM 1.1] Clean Code (Paul Malikov)
[JAM 1.1] Clean Code (Paul Malikov)Evgeny Kaziak
 

Similaire à Язык программирования C# (20)

Интерфейсы
ИнтерфейсыИнтерфейсы
Интерфейсы
 
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
 
Разработка крупного Standalone проекта на юнити: улучшаем производительность
Разработка крупного Standalone проекта на юнити: улучшаем производительностьРазработка крупного Standalone проекта на юнити: улучшаем производительность
Разработка крупного Standalone проекта на юнити: улучшаем производительность
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
 
Net 3.0 & Linq
Net 3.0 & LinqNet 3.0 & Linq
Net 3.0 & Linq
 
Js fuckworks
Js fuckworksJs fuckworks
Js fuckworks
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программирования
 
C sharp deep dive
C sharp deep diveC sharp deep dive
C sharp deep dive
 
C# Deep Dive
C# Deep DiveC# Deep Dive
C# Deep Dive
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
msumobi2. Лекция 1
msumobi2. Лекция 1msumobi2. Лекция 1
msumobi2. Лекция 1
 
C#. От основ к эффективному коду
C#. От основ к эффективному кодуC#. От основ к эффективному коду
C#. От основ к эффективному коду
 
XML Magic
XML MagicXML Magic
XML Magic
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
 
C++ refelection and cats
C++ refelection and catsC++ refelection and cats
C++ refelection and cats
 
Архитектура корпоративных систем
Архитектура корпоративных системАрхитектура корпоративных систем
Архитектура корпоративных систем
 
[JAM 1.1] Clean Code (Paul Malikov)
[JAM 1.1] Clean Code (Paul Malikov)[JAM 1.1] Clean Code (Paul Malikov)
[JAM 1.1] Clean Code (Paul Malikov)
 

Plus de Dmitri Soshnikov

Машинное обучение для школьников
Машинное обучение для школьниковМашинное обучение для школьников
Машинное обучение для школьниковDmitri Soshnikov
 
Увлекательный мир программирования.
Увлекательный мир программирования.Увлекательный мир программирования.
Увлекательный мир программирования.Dmitri Soshnikov
 
Принципы создания приложений виртуальной и расширенной реальности с примерами...
Принципы создания приложений виртуальной и расширенной реальности с примерами...Принципы создания приложений виртуальной и расширенной реальности с примерами...
Принципы создания приложений виртуальной и расширенной реальности с примерами...Dmitri Soshnikov
 
DevCon 2014: Вдохновляем детей с помощью технологий
DevCon 2014: Вдохновляем детей с помощью технологийDevCon 2014: Вдохновляем детей с помощью технологий
DevCon 2014: Вдохновляем детей с помощью технологийDmitri Soshnikov
 
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...Dmitri Soshnikov
 
SECR2013: Как научить ваших детей программировать
SECR2013: Как научить ваших детей программироватьSECR2013: Как научить ваших детей программировать
SECR2013: Как научить ваших детей программироватьDmitri Soshnikov
 
Функциональное программирование для разработки распределённых, облачных и веб...
Функциональное программирование для разработки распределённых, облачных и веб...Функциональное программирование для разработки распределённых, облачных и веб...
Функциональное программирование для разработки распределённых, облачных и веб...Dmitri Soshnikov
 
Языки программирования
Языки программированияЯзыки программирования
Языки программированияDmitri Soshnikov
 
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...Dmitri Soshnikov
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Dmitri Soshnikov
 
Cloud Computing - новая парадигма облачных вычислений. Windows Azure.
Cloud Computing - новая парадигма облачных вычислений. Windows Azure.Cloud Computing - новая парадигма облачных вычислений. Windows Azure.
Cloud Computing - новая парадигма облачных вычислений. Windows Azure.Dmitri Soshnikov
 

Plus de Dmitri Soshnikov (11)

Машинное обучение для школьников
Машинное обучение для школьниковМашинное обучение для школьников
Машинное обучение для школьников
 
Увлекательный мир программирования.
Увлекательный мир программирования.Увлекательный мир программирования.
Увлекательный мир программирования.
 
Принципы создания приложений виртуальной и расширенной реальности с примерами...
Принципы создания приложений виртуальной и расширенной реальности с примерами...Принципы создания приложений виртуальной и расширенной реальности с примерами...
Принципы создания приложений виртуальной и расширенной реальности с примерами...
 
DevCon 2014: Вдохновляем детей с помощью технологий
DevCon 2014: Вдохновляем детей с помощью технологийDevCon 2014: Вдохновляем детей с помощью технологий
DevCon 2014: Вдохновляем детей с помощью технологий
 
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
 
SECR2013: Как научить ваших детей программировать
SECR2013: Как научить ваших детей программироватьSECR2013: Как научить ваших детей программировать
SECR2013: Как научить ваших детей программировать
 
Функциональное программирование для разработки распределённых, облачных и веб...
Функциональное программирование для разработки распределённых, облачных и веб...Функциональное программирование для разработки распределённых, облачных и веб...
Функциональное программирование для разработки распределённых, облачных и веб...
 
Языки программирования
Языки программированияЯзыки программирования
Языки программирования
 
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
 
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
Обзор программных средств Майкрософт для графики и визуализации: коммерческой...
 
Cloud Computing - новая парадигма облачных вычислений. Windows Azure.
Cloud Computing - новая парадигма облачных вычислений. Windows Azure.Cloud Computing - новая парадигма облачных вычислений. Windows Azure.
Cloud Computing - новая парадигма облачных вычислений. Windows Azure.
 

Язык программирования C#

  • 1. Язык программирования C# Дмитрий Сошников dmitryso@microsoft.com
  • 2. Платформа .NET C# Visual Basic .NET F# Managed C++ … Платформа Microsoft .NET Исполнитель byte-code Библиотека Операционная система Аппаратура компьютера (процессор, память, …)
  • 3. Особенности C# Мультипарадигмальный язык Императивный Объектно-ориентированный Функциональный Что нужно для программирования? .NET Framework SDK Visual Studio Professional/Ultimate (2010) Visual Studio C# Express (2010)
  • 4. Минимальная программа на C# using System; namespaceMyApplication { classProgram { staticvoid Main(string[] args) { Console.WriteLine("Hello, World!"); } } }
  • 5. Переменные и типы данных int – целый тип float – вещественный тип double – вещественный с двойной точностью bool – логический (значения true/false) Массивы, ссылки, делегаты, … Объектный MyObject, List<bool>, …
  • 6. Оператор присваивания using System; namespaceMyApplication { classProgram { staticvoid Main(string[] args) { float a = float.Parse(args[0]); float b = float.Parse(args[1]); float c = float.Parse(args[2]); var d = b * b - 4 * a * c; var x1 = -b + Math.Sqrt(d) / 2 / a; var x2 = -b - Math.Sqrt(d) / 2 / a; Console.WriteLine("x1={0}, x2={1}", x1, x2); } } }
  • 7. Операторы передачи управления Условный оператор if-then-else Циклы С предусловием while … do С постусловием do … while Со счётчиком for
  • 8. Условный оператор using System; namespaceMyApplication { classProgram { staticvoid Main(string[] args) { float a = float.Parse(args[0]); float b = float.Parse(args[1]); float c = float.Parse(args[2]); var d = b * b - 4 * a * c; if (d>=0) { var x1 = -b + Math.Sqrt(d) / 2 / a; var x2 = -b - Math.Sqrt(d) / 2 / a; Console.WriteLine("x1={0}, x2={1}", x1, x2); } elseConsole.WriteLine("No solutions"); } } }
  • 9. Цикл со счётчиком, функции using System; namespace ConsoleApplication2 { classProgram { staticint fact(int x) { int f = 1; for (int i = 1; i <= x; i++) { f = f * i; } return f; } staticvoid Main(string[] args) { for (var i = 1; i < 10; i++) { Console.WriteLine("{0}!={1}", i, fact(i)); } Console.ReadKey(); } } }
  • 10. Классы, объекты classPerson { public Person(string n) { Name = n; } public Person(string n, Person f, Person m) { Name = n; Father = f; Mother = m; } publicPerson Father, Mother; publicstring Name { get; set; } publicvoid Introduce() { Console.WriteLine("I am {0}, my father is {1}, mother is {2}", Name, Father.Name, Mother.Name); } } varV = newPerson("Vasya",newPerson("Petya"), newPerson("Masha")); V.Introduce();
  • 11. Полезные классы в библиотеке Списки List<…> Словари Dictionary<TKey,TValue> Работа с XML, сетевыми подключениями, сжатие данных, криптография, графика, … varL = newList<Person>(); L.Add(V); L.Add(newPerson("Jack",V,newPerson("Katya"))); L.Sort(newComparison<Person>((p1, p2) => string.Compare(p1.Name, p2.Name))); foreach(var x in L) Console.WriteLine(x.Name); L.ForEach(P => P.Introduce());
  • 12. C# - не только для консольного программирования! Windows Forms Windows Presentation Foundation ASP.NET Web Forms ASP.NET MVC Silverlight XNA Game Studio (Windows, XBox, Windows Phone 7, Zune) Windows Phone 7 (Silverlight, XNA) XBox (XNA)
  • 13. Дополнительные ресурсы для изучения Центр начинающего разработчика: http://msdn.microsoft.com/ru-ru/beginner/default.aspx Книга «C# для начинающих» – скачать PDF или читать онлайн http://msdn.microsoft.com/ru-ru/beginner/ee344863.aspx Интернет-университет Intuit.ru Основы программирования на C#: http://www.intuit.ru/department/pl/csharp/ Введение в программирование на C# 2.0: http://www.intuit.ru/department/pl/csharp20/ MSDN: Центр Visual C#: http://msdn.microsoft.com/ru-ru/vcsharp/default.aspx Интерактивный учебник по C#
  • 14. Console.WriteLine(“Thank.You!”); Дмитрий Сошников dmitryso@microsoft.com, dmitri@soshnikov.com http://www.soshnikov.com http://blogs.msdn.com/sos http://twitter.com/shwars