programowalnia.info

Nowy mechanizm forum! Problemy i sugestie proszę zgłaszać do administratora
Teraz jest 2010-07-30, 09:06

Wszystkie czasy w strefie UTC + 1




Utwórz nowy wątek Ten wątek jest zamknięty. Nie możesz w nim pisać ani edytować postów.  [ Posty: 2 ] 
Autor Wiadomość
 Tytuł: C Sharp (C#)
PostNapisane: 2007-09-09, 18:29 
Offline

Dołączył(a): 2007-09-09, 17:53
Posty: 220
Lokalizacja: Bruksela
C Sharp (C♯, C#, wym. si-szarp) jest obiektowym językiem programowania zaprojektowanym przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft. Program napisany w tym języku kompilowany jest do języka Common Intermediate Language (CIL), specjalnego kodu pośredniego wykonywanego w środowisku uruchomieniowym .NET, Mono lub DotGNU.

Do uruchomienia programu napisanego w języku C# w systemie operacyjnym Microsoft Windows wymagane jest środowisko uruchomieniowe zwane .NET Framework dostępne za darmo na stronie Microsoftu.

Język C# ma wiele cech wspólnych z językami programowania C++ i Java.

Nazwa

Z powodów technicznych poprawny zapis nazwy jest rzadko spotykany – nawet ze strony Microsoftu. Znak sharp ♯, czyli krzyżyk w notacji muzycznej, jest zastępowany znakiem kratki (hash, #). Spowodowane jest to brakiem znaku sharp w wielu podstawowych czcionkach i stronach kodowych oraz względna trudność przy wpisywaniu go z klawiatury.

Dlatego też specyfikacja ECMA dopuszcza zapis C# jako poprawny.

Obrazek

Cechy języka

* obiektowość z hierarchią o jednym elemencie nadrzędnym: podobnie jak w Javie, kod programu jest zbiorem klas. W przeciwieństwie do Javy jednak, w C# hierarchia dziedziczenia opiera się na istnieniu jednej klasy object (System.Object), która stanowi element nadrzędny tej hierarchii. W szczególności oznacza to, że również typy proste (int, double, itd.) są obiektami z właściwymi sobie metodami, np. int i=1; string s = i.ToString();
* odśmiecanie pamięci: zarządzaniem pamięcią zajmuje się środowisko uruchomieniowe. Oznacza to, że nie ma konieczności ani potrzeby samodzielnego zajmowania się zwalnianiem pamięci po obiektach, które przestają być używane
* właściwości, indeksery, delegaty, zdarzenia: język C# pozwala definiować wiele różnych elementów składowych klas, nie tylko pola czy metody.
* refleksje i atrybuty (metaprogramowanie): w czasie pracy programu istnieje możliwość analizy struktury kodu z poziomu tego kodu. Umożliwia to tworzenie wysoce uniwersalnych mechanizmów operujących na strukturze kodu nie znanej w czasie kompilacji. Mechanizm ten wykorzystywany jest m.in. w bibliotekach ORM, narzędziach do analizy i weryfikacji kodu czy rozszerzeniach AOP. Mechanizm atrybutów został z C# zapożyczony do Javy w wersji 1.5.
* typy ogólne (generics - dostępne od wersji .net 2.0): mechanizm zbliżony swoją ogólnością do szablonów w C++, jednak tu typ ogólny jest przenoszony do modułu binarnego i możliwy jest do wykorzystania bez konieczności posiadania kodu źródłowego (szablony w C++ to w uproszczeniu rozbudowane makrodefinicje)
* dynamiczne tworzenie kodu: biblioteki .NET umożliwiają dynamiczne tworzenie kodu w czasie działania programu i włączanie go do kodu aktualnie wykonywanego. Możliwe jest zarówno dynamiczne tworzenie kodu wykonywalnego ze źródeł C# jak i tworzenie dynamicznych modułów w języku pośrednim (MSIL).
* bogata biblioteka klas BCL, umożliwiająca rozwijanie aplikacji konsolowych, okienkowych (System.Windows.Forms), bazodanowych (ADO.NET), sieciowych (System.Net), w architekturze rozproszonej (WebServices) czy dynamicznych aplikacji internetowych (ASP.NET)

Przykładowe programy

C# stosuje się dwa rodzaje komentarzy:

1. // to komentarz jednoliniowy, czyli wszystkiego, co znajduje się za nim, kompilator nie bierze pod uwagę.
2. Komentarz wielowierszowy zaczyna się od /* a kończy */. Kompilator nie bierze pod uwagę tego, co znajduje się pośrodku.

Jeśli komentarz zaczyna się od /// lub /**, to jest to komentarz, w którym umieszcza się dokumentację do kodu w postaci kodu XML.

Prosty program napisany w języku C#. Po jego skompilowaniu i uruchomieniu zobaczymy napis „Hello world!”.

Kod:
using System;
public class PrzykladowaKlasa
{
    public static void Main()
    {
        Console.WriteLine("Hello world!");
    }
}


Kolejny przykładowy program demonstruje technikę programowania interfejsu użytkownika. Po jego skompilowaniu i uruchomieniu system operacyjny utworzy okienko aplikacji.
Kod:
using System;
using System.Windows.Forms;
public class PrzykladoweOkno : Form
{
    public static void Main()
    {
        Application.Run( new PrzykladoweOkno() );
    }
}


Przykładowe algorytmy sortowania zaimplementowane w C# znajdują się w tematach:

* sortowanie bąbelkowe,
* sortowanie przez wstawianie,
* sortowanie przez wybieranie,
* sortowanie Shella.

C# 2.0

Rozszerzenia wprowadzone przez Microsoft do języka w roku 2005 wraz z prezentacją .NET Framework 2.0 oraz Visual Studio 2005.

Najważniejsze z rozszerzeń to:

* typy generyczne - typy te rozszerzają język C# o polimorfizm parametryczny.

Kopiec zaimplementowany przy pomocy szablonu klasy:

Kod:
public class Heap<T>
{
      private T[] array;

      //konstruktor
      public Heap(T[] array) {...}

      //wstawianie nowego elementu do kopca
      public void Insert(T elem) {...}
}


* iteratory klas - podobnie do generatorów w Pythonie używają słowa kluczowego "yield".

Kod:
public IEnumerator<T> GetEnumerator()
{
   for (int i = 1; i <= heapSize; i++)
   {
      yield return array[i];
   }
}


* typy częściowe - umożliwiają rozbicie klasy, struktury lub interfejsu do wielu plików źródłowych. Klasa częsciowa wymaga użycia słowa kluczowego "partial".

* metody anonimowe - pozwalają na tworzenie funkcji „w miejscu”. Funkcje takie umożliwiają na związanie kodu funkcji bezpośrednio z instancją delegata. Oznacza to, że te funkcje nie mają nazwy i mogą być wywołane jedynie przez wywołanie delegata.

Kod:
someButton.Click += delegate { MessageBox.Show("Wcisnieto przycisk"); };


* typy Nullable - to typ prosty, który łączy wartości swojego typu podstawowego z dodatkowym oznaczeniem braku wartości (null). Typy te tworzymy przez połączenie nazwy typu prostego ze znakiem ‘?’ np. int?, float?. Głównym zastosowaniem tych typów jest współpraca z bazami danych. Reprezentują one wartości uzyskane z bazy danych, uwzględniając możliwość nie istnienia danej wartości w bazie.

Nowości w C# 3.0

* Słowa kluczowe "select, from, where" pozwalające na dostęp do SQL, XML, kolekcji, i innych (Language integrated query (LINQ))
* Inicjalizatory obiektów: Klient k = new Klient(); k.Imie="Jan"; staje się Klient k = new Klient { Imie="Jan" };
* Lambda-wyrażenia : listOfFoo.Where(delegate(Foo x) { return x.size>10;}) staje się listOfFoo.Where(x => x.size>10);
* Typy domniemane: var x = "hello"; oznacza to samo, co string x = "hello";
* Typy anonimowe: var x = new { Imie = "Jan" }
* Rozszerzanie typów - dodawanie nowych metod do istniejących klas bez potrzeby ich dziedziczenia.

C# 3.0 przedstawiono na PDC 2005, wersja Preview jest dostępna na stronach MSDN.

Wikipedia.pl


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł:
PostNapisane: 2007-10-10, 08:03 
Offline
Avatar użytkownika

Dołączył(a): 2007-10-08, 16:18
Posty: 56
Lokalizacja: Kielce
Temat informacyjny - Zamykam

_________________
[center]"Nie ma takiej fortecy, która by się oparła osłu z workiem złota na grzbiecie." - Aleksander Wielki
Obrazek[/center]


Góra
 Zobacz profil Wyślij e-mail  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Ten wątek jest zamknięty. Nie możesz w nim pisać ani edytować postów.  [ Posty: 2 ] 

Wszystkie czasy w strefie UTC + 1


Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
 cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
opisy gg :: portal zdrowie :: sport i turystyka :: katalog dobrych stron :: ciekawostki komputerowe :: prawo i podatki :: Numizmatyka

Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
phpBB SEO