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 