40-783: Hierarchia typów

Po dłuższej przerwie wracam do tematu języka C#. Przede mną kolejny rozdział Certficiation Toolkit. Dzisiaj pomówimy sobie głównie na temat Hierarchii typów. Temat ten tak naprawdę nie jest zawiły, gdyż nie odbiega on znacząco od tego co znamy z Javy, aczkolwiek pojawi się kilka nowych rzeczy. Nie będę dłużej przeciągać – zaczynajmy :)
Czytaj dalej 40-783: Hierarchia typów

40-783: Praca z typem String

W dzisiejszym odcinku – typ string. W jaki sposób możemy go tworzyć? jakie najważniejsze metody nam dostarcza? Oprócz stringa, poznamy kilka innych ważnych klas do pracy na ciągach znaków, takich jak: StringBuilder, StrinWriter i StringReader. Później pomówimy sobie o konwertowaniu innych typów na string – skupimy się głównie na metodach ToString oraz String.Format. Poświęcimy trochę czasu „Composite string”, czyli notacji służącej do dokładego opisu w jaki sposób dany obiekt ma być reprezentowany jako ciąg znaków. Na koniec powiemy sobie w jaki sposób możmy się „wpiąć” w C-Sharpową infrastrukturę konwertowania do stringa, czyli o interfejsach IFormattable, IFormatProvider oraz ICustomFormatter.

Czytaj dalej 40-783: Praca z typem String

40-783: Konwersje

W dzisiejszym odcinku moich zmagań z materią C-Sharpową porozmawiamy sobie na temat wszelkiego rodzaju konwersji między typami. Zaczniemy od ogólnych rozważań na temat konwertowania: kiedy zadzieje się to automatycznie a kiedy nie; kiedy konwersja może nam sprawić problemy a kiedy napewno wszystko będzie ok. Pomówimy sobie chwilę o mechanizmie autoboxingu, który wydaje się mało ciekawym tematem, ale jest na tyle różny od tego co daje nam Java, że warto chociaż rzucić okiem. Zaraz po tym przyjrzymy się chyba jednemu z najpopularniejszych rodzajów konwersji, czyli rzutowaniu. Przy okazji tego tematu poznamy operatory is, oraz as. Zrobimy też krótki przegląd tego jakich mechanizmów konwersji dostarcza nam biblioteka standardowa aby za chwilę nauczyć się jak możemy zmusić nasze typy współpracy z nimi. Żeby tego było mało, przywitamy się z niecodziennym zjawiskiem, jakim jest typ dynamic aby na sam koniec dosłownie na moment rzucić okiem na P/Invoke oraz COM Interop – dwie techniki pozwalające na współpracę kodu C# z kodem „unmanaged”.

Jak widać temat konwersji jest całkiem pojemny. Nie ma więc co przedłużać – zaczynajmy.

Czytaj dalej 40-783: Konwersje

40-783 Keywordy związane z Reference Types

Podczas przerabiania trzeciego rozdziału książki T. Covaci, trafiłem na fragment w którym autor przedstawia nam listę najważniejszych słów kluczowych związanych z Reference Types. Moim zdaniem jest to „trochę obok” głównych tematów tego rozdziału, ale skoro postanowiłem się trzymać tej książki jako „drogowskazu” przy nauce, to niech tak będzie.  W tym artykule będzie chyba najbardziej widać jedną z idei, która przyświeca tej serii – wyszczególnianiu różnic między Javą a C#.

Czytaj dalej 40-783 Keywordy związane z Reference Types

40-783: Podstawy Typów Generycznych

Podobnie jak w Javie, C# posiada typy generyczne. Język ten nie zmusza nas jednak do parametryzowania tylko z użyciem reference types – możemy użyć też value types. Drugą znaczną różnicą jest to, że o ile w Javie nie mamy (powiedzmy) informacji o typie generycznym w runtimie – o tyle w C# taka informacja jest do wyciągniecia przez mechanizmy refleksji.

Czytaj dalej 40-783: Podstawy Typów Generycznych

40-783: Wprowadzenie do Reference Types

W ostatnim tygodniu udało mi się dokończyć trzeci rozdział książki MCSD Certification Toolkit. Wyszło mi tyle notatek, że na ich podstawie powstaną trzy wpisy. Dzisiejszy stanowi wstęp do Reference Types. Następny będzie o typach generycznych. Ostatni będzie zawierać opisy słów kluczowych związanych z Reference Types.

Poza tym postanowiłem zmienić koncepcję publikacji wpisów i nie będę robić tygodniowych podsumowań. Wpisy będą się teraz pojawiać w miarę przerabiania poszczególnych (ale mniejszych niż do tej pory) zagadnień.

Czytaj dalej 40-783: Wprowadzenie do Reference Types

Egzamin 70-483

Od jakiegoś czasu zastanawiam się nad zwiększeniem swojej wiedzy o programowania w jęzku C#. Z językiem tym pracowałem zawodowo przez około rok czasu ale ostatnie 6 miesięcy spędziłem w projekcie 100% Javowym. Jak wiadomo – jeżeli czegoś się nie praktykuje, to wiedza prędzej czy później znika. Chcę zarówno uporządkować posiadaną wiedzę jak i pogłębić ją o tematy z którymi na codzień nie miałem styczności. Uznałem, że całkiem niezłym motywatorem, mogłaby być chęć uzyskania certyfikatu. Jednym z etapów na tej drodze jest zdanie egzaminu 70-483.

Czytaj dalej Egzamin 70-483

C# i Mac OS

Zawodowo, od około roku, mam okazję zajmować się nie tylko programowaniem w Javie, ale również w C#. Do tej pory wystarczało mi zdobywanie wiedzy podczas pracy w projekcie, doczytywanie z neta tego czego nie wiem, czy dopytywanie osób, które mają większe doświadczenie ode mnie.

Jakiś czas temu stwierdziłem, że fajnie by było również móc pokodować sobie trochę w domu.  Szczególnie zaczęło mi zależeć na tym teraz, gdy czytam książkę Stephen Cleariego – Concurrency in C# Cookbook – i wygodnie by mi było móc przy okazji czytania wklepać sobie trochę kodu do IDE i zobaczyć jak się zachowa.

Niby praca z C# to nie jest to jakiś serious business – instalujemy .Net Framework, Visual Studio i jazda. Tak się jednak składa, że na co dzień nie używam Windowsa – co prawda zawsze można sobie postawić maszynę wirtualną, ale to jednak nie to samo, co praca na natywnym systemie.

Okazuje się, że na dzień dzisiejszy  używanie C# bez .Net Framework nie jest już problemem. Możemy zainstalować sobie na Maku Mono . Mamy też IDE Mono Developer, które wydaje się całkiem sensownym edytorem.

Także jak widać, jak się chce – to się da ;)