Стандартизація.
Розробка клієнтського додатку для роботи з онлайн-агрегатором новин універсальної програмної платформи Windows (UWP)
Версія 3.0У червні 2004 року Андерс Гейлсберг вперше розповів на сайті Microsoft про плановані розширеннях мови в C# 3.0.У вересні 2005 року вийшли проект специфікації C# 3.0 і бета-версія C# 3.0, що встановлюється у вигляді доповнення до існуючих Visual Studio 2005 і. NET 2.0. Остаточно ця версія мови увійшла в Visual Studio 2008 і.NET 3.5. C# 3.0 сумісний з C# 2.0 по генеруємому MSIL-коду… Читати ще >
Стандартизація. Розробка клієнтського додатку для роботи з онлайн-агрегатором новин універсальної програмної платформи Windows (UWP) (реферат, курсова, диплом, контрольна)
C# стандартизований в ECMA (ECMA-334) [9]і ISO (ISO / IEC 23 270). Відомо як мінімум про три незалежних реалізаціях C#, що базуються на цій специфікації і знаходяться в даний час на різних стадіях розробки:
- — Mono, розпочата компанією Ximian, продовжена її покупцем і наступником Novell, а потім Xamarin.
- — dotGNU і Portable.NET, що розробляються Free Software Foundation.
- — SharpDevelop.
Версії
Протягом розробки мови C# було випущено декілька його версій.
Загальна інформація за версіями.
Версія 1.0. Проект C# був початий в грудні 1998 і отримав кодову назву COOL (C-style Object Oriented Language). Версія 1.0 була анонсована разом з платформою.NET в червні 2000 року, тоді ж з’явилася і перша загальнодоступна бета-версія; C# 1.0 остаточно вийшов разом з Microsoft Visual Studio.NET в лютому 2002 року.
Перша версія C# нагадувала за своїми можливостями Java 1.4, декілька їх розширюючи: так, в C# були властивості (що виглядають в коді як поля об'єкта, але на ділі викликають при зверненні до них методи класу), індексатори (подібні властивостям, але приймають параметр як індекс масиву), події, делегати, цикли foreach, структури, що передаються за значенням, автоматичне перетворення вбудованих типів в об'єкти при необхідності (boxing), атрибути, вбудовані засоби взаємодії з некерованим кодом (DLL, COM) та інше.
Крім того, в C# вирішено було перенести деякі можливості C++, відсутні в Java: беззнакові типи, перевантаження операторів (з деякими обмеженнями, на відміну від C++), передача параметрів в метод за посиланням, методи зі змінним числом параметрів, оператор goto (з обмеженнями). Також в C# залишили обмежену можливість роботи з покажчиками — у місцях коду, спеціально позначених словом unsafe і при вказівці спеціальної опції компілятору.
Версія 2.0. Проект специфікації C# 2.0 вперше був опублікований Microsoft у жовтні 2003 року; в 2004 році виходили бета-версії (проект з кодовою назвою Whidbey), C# 2.0 остаточно вийшов 7 листопада 2005 разом з Visual Studio 2005 і.NET 2.0.
Нові можливості у версії 2.0:
Часткові типи (розділення реалізації класу більш ніж на один файл).
Узагальнені, або параметризрвані типи (generics). На відміну від шаблонів C++, вони підтримують деякі додаткові можливості і працюють на рівні віртуальної машини. Разом з тим, параметрами узагальненого типу не можуть бути вирази, вони не можуть бути повністю або частково спеціалізовані, не підтримують шаблонних параметрів за замовчуванням, від шаблонного параметра не можна успадковуватися, і т.д. [13].
Нова форма ітератора, що дозволяє створювати співпрограми за допомогою ключового слова yield, подібно Python і Ruby.
Анонімні методи, що забезпечують функціональність замикання.
Оператор '??': return obj1? obj2; означає (в нотації C# 1.0) return obj1! = null? obj1: obj2;.
Обнуляти ('nullable') типи-значення (що позначаються знаком питання, наприклад, int? I = null;), що представляють собою ті ж самі типи-значення, здатні приймати також значення null. Такі типи дозволяють поліпшити взаємодію з базами даних через мову SQL.
Можливість створювати збережені процедури, тригери і навіть типи даних на.Net мовах (у тому числі і на C#).Підтримка 64-розрядних обчислень, що крім усього іншого, дозволяє збільшити адресний простір і використовувати 64-розрядні примітивні типи даних.
Версія 3.0У червні 2004 року Андерс Гейлсберг вперше розповів на сайті Microsoft про плановані розширеннях мови в C# 3.0. [14]У вересні 2005 року вийшли проект специфікації C# 3.0 і бета-версія C# 3.0, що встановлюється у вигляді доповнення до існуючих Visual Studio 2005 і. NET 2.0. Остаточно ця версія мови увійшла в Visual Studio 2008 і.NET 3.5.
Нові можливості у версії 3.0. У C# 3.0 з’явилися наступні радикальні додавання до мови:
ключові слова select, from, where, що дозволяють робити запити з SQL, XML, колекцій і т. п. (запит, інтегрований в мову, Language Integrated Query, або LINQ).
Ініціалізація об'єкта разом з його властивостями:
Customer c = new Customer (); c.Name = «James»; c. Age = 30;
можна записати як:
Customer c = new Customer {Name = «James», Age = 30};
Лямбда-вирази:
listOfFoo.Where (delegate (Foo x) {return x. size> 10;});
тепер можна записати як.
listOfFoo.Where (x => x. size> 10);
Дерева виразів:
лямбда-вирази тепер можуть представлятися у вигляді структури даних, доступній для обходу під час виконання, тим самим дозволяючи транслювати строго типізовані C# -виражені в інші домени (наприклад, вирази SQL).
Висновок типів локальної змінної: var x = «hello»; замість string x = «hello» ;
Безіменні типи: var x = new {Name = «James» };
Методи-розширення — додавання методу в існуючий клас за допомогою ключового слова this при першому параметрі статичної функції.
public static class StringExtensions.
{.
public static int ToInt32 (this string val).
{.
return Int32. Parse (val);
}.
}.
//…
string s = «10» ;
int x = s. ToInt32 ();
Автоматичні властивості: компілятор згенерує закрите (private) поле і відповідні аксессор і мутатор для коду виду:
public string Name {get; private set; }.
C# 3.0 сумісний з C# 2.0 по генеруємому MSIL-коду; поліпшення в мові - чисто синтаксичні і реалізуються на етапі компіляції. Наприклад, багато хто з інтегрованих запитів LINQ можна здійснити, використовуючи безіменні делегати в поєднанні з предикативними методами над контейнерами зразок List. FindAll і List.RemoveAll.
Версія 4.0. Прев’ю C# 4.0 було представлено в кінці 2008 року, разом з CTP-версією Visual Studio 2010.
Visual Basic 10.0 і C# 4.0 були випущені в квітні 2010 року, одночасно з випуском Visual Studio 2010.
Нові можливості у версії 4.0. Можливість використання пізнього зв’язування, для використання:
з мовами з динамічною типізацією (Python, Ruby).
з COM-об'єктами відбиття (reflection).
об'єктів із змінною структурою (DOM). З’являється ключове слово dynamic.
Іменовані і опціональні параметри.
Нові можливості COM interop.
Коваріантність і контраваріантним.
Контракти в коді (Code Contracts).
приклади:
dynamic calc = GetCalculator ();
int sum = calc. Add (10, 20); // Динамічний виклик.
public void SomeMethod (int x, int y = 5, int z = 7); // Опциональниє параметри.
Приклад «Hello, World!» [Ред | правити вікі-текст].
Нижче представлений код класичної програми «Hello world» на C# для консольного застосування:
using System;
namespace Example.
{.
class Program.
{.
static void Main ().
{.
Console.WriteLine («Hello World!»); // Вивід заданого тексту в консоль.
Console.ReadKey (); // Очікування натискання клавіші користувачем.
}.
}.
}.
і код цієї ж програми для програми Windows Forms:
// Assembly: System.dll.
// Assembly: System.Drawing.dll.
// Assembly: System.Windows.Forms.dll.
using System;
using System. Drawing;
using System.Windows.Forms;
namespace WindowsForms.
{.
public class Program.
{.
[STAThread].
public static void Main ().
{.
new DemoForm (). ShowDialog ();
}.
}.
public class DemoForm: Form.
{.
Label label = new Label ();
public DemoForm ().
{.
label.Text = «Hello World!» ;
this.Controls.Add (label);
this.StartPosition = FormStartPosition. CenterScreen;
this.BackColor = Color. White;
this.FormBorderStyle = FormBorderStyle. Fixed3D;
}.
}.
}.