C#

Od jakiegoś czasu zastanawiałem się co takiego fenomenalnego jest w C#, że wszyscy go chwalą. No dobra, nie wszyscy, ale wielu. Postanowiłem więc sprawdzić to na własnej skórze.

Ściągnąłem i zainstalowałem Microsoft Visual C# Express Edition 2008. Po odpaleniu na pierwszy rzut oka jedynym szczegółem, który odróżnia VC# od VC++ jest kolor zielony splash screen’a podczas gdy ten z VC++ jest żółty ^^

Postanowiłem stworzyć nowy projekt w celu testów. Kiedy moim oczom ukazała się wreszcie forma na której mogłem umieścić kontrolki, zaszalałem… Umieściłem jeden przycisk. Na początek chciałem sprawić aby po wciśnięciu przycisku pojawił się mały prosty Message Box. Dzięki świetnemu uzupełnianiu składni okazało się to prostsze niż napisanie „Hello world” w konsoli ^^

W dalszej części testu pomęczyłem jeszcze kilka innych kontrolek sprawdzając z czym się je zajada 😉 Jako, że nic mądrego nie mam na ten temat do powiedzenia – przejdę do następnej kwestii 😛

Teraz chciałbym się pozachwycać trochę uzupełnianiem składni i „zgadywaniem” przez VC# tego co chcę wpisać. Bardzo fajną rzeczą podczas powoływania do życia nowego obiektu za pomocą new jest automatyczne zgadywanie konstruktora. Polega to na tym, że po wpisaniu operatora new i spacji od razu pojawia się okienko z podpowiedziami z zaznaczonym konstruktorem klasy znajdującej się po lewej stronie `=` (który oczywiście jest przed new 😉 ).

Następnym udogodnieniem, które bardzo mi przyspieszyło pisanie aplikacji testowej było zgadywanie nazw zmiennych. Jeśli na przykład używałem ostatnio zmiennej o nazwie „zmienna” to wpisując „z” w edytorze od razu pojawi się okienko z podpowiedzią i zaznaczoną nazwą: „zmienna” (nawet jeśli w porządku leksykograficznym nie będzie to pierwsza zmienna na `z`). To pomaga zwłaszcza podczas korzystania ze struktur. Wpisując pierwszą literę nazwy obiektu jakiejś struktury od razu pojawi się okienko `dobrą` podpowiedzią (jeśli już wcześniej użyliśmy tej nazwy) – wtedy wystarczy już tylko wcisnąć `.` i do edytora zostanie wpisana cała nazwa obiektu razem z kropką i dodatkowo wyświetlone zostaną elementy struktury (co już raczej nikogo nie dziwi 😉 ).

Jako ostatnią rzecz, która mnie  w VC# zachwyciła wymienię tą, która zaskoczyła mnie jako pierwsza. Jest nią szybkość kompilacji kodu. Tak niesamowite tempo kompilacji po prostu wgniotło mnie w fotel!

Istnieje jednak pewna sprawa, która jest trochę irytująca i jak dla mnie trochę brzydko wygląda w kodzie. Chodzi mi o dodawanie `private` lub `public` przed każdą zmienną i metodą.

Podsumowując: Moja ocena C# jest bardzo pozytywna. Dla programistów C++ prawdopodobnie pomocna będzie ta strona.

BTW: dzisiaj czytałem art o tworzeniu zegara analogowego w C#. Artykuł byłby całkiem w porządku gdyby nie fakt, że autor bardzo beztrosko podchodził do pamięci zarówno komputera jak i czytelnika. Powinienem tutaj wyjaśnić co miałem na myśli mówiąc o pamięci czytelnikowej. Otóż chodziło mi o to, że autor artykułu używał 1000 zamiennych, kiedy tak na prawdę mógł pracować na zaledwie kilku.

Szczytem tej techniki było zaimplementowania przesuwania okna przez złapanie okna w dowolnym punkcie i przesuniecie myszki. Autor użył do tego 5 zmiennych podczas gdy mi wystarczyły tylko dwie.

PS.: Musiałem napisać o tym arcie żeby mi ulżyło bo strasznie mnie to piekło 😉

Reklamy

10 myśli nt. „C#

  1. Tak, autouzupełnianie rządzi… Jak to ładnie powiedział mój profesor od .NETu: „Niedługo będziemy programowali wyłącznie przy użyciu spacji i tabulatora” 😉

  2. O tak, C# rządzi 🙂 a co do IDE to niewyobrażam sobie kodzić w C# w czymś innym jak Microsoft Visual C# 🙂

    PS.
    Netrick, Twój komentarz jest totalnie bezsensowny i nic nie wnosi do tematu…

  3. Still – oprocz „dodawanie `private` lub `public` przed każdą zmienną i metodą” zadnej uwagi nt samego jezyka, a roznic z c++ czy wad dla c++ geeks znajdzie sie calkiem sporo: chocby brak wielodziedziczenia (a raczej uboga jego symulacja a’la java przy uzyciu interfejsow), finalizatory i gc vs. destruktory i delete czy generyki vs. szablony.

  4. @slaimi: tylko czy wielodziedziczenie jest naprawdę absolutnie niezbędne? Do tej pory jakoś się bez tego obywałem i nie brakowało mi tego. Ew. zastosowanie interfejsów było wystarczające i wygodne, a samo drzewo dziedziczenia nie było „popsute” przez dziedziczenie z wielu klas.

  5. Nie musisz dodawac private przed kazda. Pykasz public/protected tylko przed tym co chcesz wystawic i luzik :). Co do opisu zalet jezyka … to go tutaj nie ma :). Zreszta jezyk jak jezyk – powerkiem jest dopiero .NET framework 😉

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s