Язык программирования C# Дмитрий Сошников
Платформа.NET Операционная система Аппаратура компьютера (процессор, память, …) Платформа Microsoft.NET Исполнитель byte-code Библиотека C# Visual Basic.NET F# Managed C++ … …
Особенности C# Мультипарадигмальный язык – Императивный – Объектно-ориентированный – Функциональный Что нужно для программирования? –.NET Framework SDK – Visual Studio Professional/Ultimate (2010) – Visual Studio C# Express (2010)
Минимальная программа на C# using System; namespace MyApplication { class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); }
Переменные и типы данных int – целый тип float – вещественный тип double – вещественный с двойной точностью bool – логический (значения true/false) Массивы, ссылки, делегаты, … Объектный – MyObject, List, …
Оператор присваивания using System; namespace MyApplication { class Program { static void 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; namespace MyApplication { class Program { static void 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); } else Console.WriteLine("No solutions"); }
Цикл со счётчиком, функции using System; namespace ConsoleApplication2 { class Program { static int fact(int x) { int f = 1; for (int i = 1; i
Классы, объекты class Person { public Person(string n) { Name = n; } public Person(string n, Person f, Person m) { Name = n; Father = f; Mother = m; } public Person Father, Mother; public string Name { get; set; } public void Introduce() { Console.WriteLine("I am {0}, my father is {1}, mother is {2}", Name, Father.Name, Mother.Name); } var V = new Person("Vasya", new Person("Petya"), new Person("Masha")); V.Introduce();
Полезные классы в библиотеке Списки List Словари Dictionary Работа с XML, сетевыми подключениями, сжатие данных, криптография, графика, … var L = new List (); L.Add(V); L.Add(new Person("Jack",V,new Person("Katya"))); L.Sort(new Comparison ((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)
Дополнительные ресурсы для изучения Центр начинающего разработчика: – Книга «C# для начинающих» – скачать PDF или читать онлайн ru/beginner/ee aspxhttp://msdn.microsoft.com/ru- ru/beginner/ee aspx Интернет-университет Intuit.ru – Основы программирования на C#: – Введение в программирование на C# 2.0: MSDN: – Центр Visual C#: ru/vcsharp/default.aspxhttp://msdn.microsoft.com/ru- ru/vcsharp/default.aspx – Интерактивный учебник по C#
Console.WriteLine(Thank.You!); Дмитрий Сошников