Press "Enter" to skip to content

Zagubiona wśród własnych myśli - Piatkosia's blog

[c#] Zdarzenia – ostatni z konkursowych

Zdarzenia są wywoływane, jeżeli coś konkretnego stanie się w trakcie działania naszego programu. Akcją wywołującą je może być osiągnięcie przez zmienną pewnej wartości, przejście wykonania programu do określonego bloku, użycie mechanizmu drag and drop, lub chociażby kliknięcie na przycisk lub najechanie myszką na dane pole na ekranie. To właśnie dzięki zdarzeniom dany obiekt może poinformować inny (który dane publiczne zdarzenie obsługuje) o zmianie swojego stanu. Klasa naszego obiektu może mieć bardzo wiele zdarzeń, które są wywoływane po zaistnieniu ściśle określonego warunku (jak zakończenie pobierania pliku, przyciśnięcie przycisku czy ustawienie zmiennej w setterze). Użytkownik pisząc w Visual Studio często sobie takie zdarzenia „wyklikiwał” projektując interfejs – na przykład przeciągał z toolboxa kontrolkę typu button, nadając jej nazwę, a następnie klikając na nią 2 razy. Po takiej operacji został wygenerowany następujący kod:

 
private void button1_Click(object sender, RoutedEventArgs e)
        {
            
        }

Jak widać funkcją obsługującą zdarzenie jest (i musi być) funkcja, która nie zwraca wartości, a pobiera obiekt, który wywoła zdarzenie, oraz obiekt typu EventArgs. W przykładzie powyżej mamy obiekt typu RoutedEventArgs. Najeżdżając na nazwę tego typu i po wciśnięciu F12 możemy zobaczyć taki fragment kodu public class RoutedEventArgs : EventArgs .
Jak widzimy, klasa RoutedEventArgs dziedziczy po EventArgs – czyli wszystko jest jak być powinno. Powyższą klasę należy wypełnić kodem, który zostanie wywołany przy zajściu zdarzenia – kliknięcia na przycisk o nazwie button1.
Aby nasza funkcja obsłużyła dane zdarzenie należałoby dokonać subskrypcji poprzez dopisanie delegaty do listy delegat, czyli zdarzenia. W przykładzie powyżej nie musieliśmy tego robić? Nie prawda, też musieliśmy, ale zrobiła to za nas platforma. W pliku MojaKlasa.g.cs (przy nowym projekcie MainWindow.g.cs), który jest generowany na podstawie naszego pliku .cs oraz .xaml czytamy:

 
#line 6 "..\..\..\MainWindow.xaml"
this.button1.Click += new System.Windows.RoutedEventHandler(this.button1_Click);

[C#] Tablice

(to też post na konkurs)

Tablice są zmiennymi tego samego typu, ułożone w pamięci sąsiednio tak, że wiedząc którym kolejno elementem od zerowego jest poszukiwany, możemy się do niego dostać. Możemy sobie wyobrazić tablicę jak pociąg złożony z wagoników (każdy z tych wagoników może przewozić tylko przedmioty jednego typu, na przykład kosz jabłek, lub samochód). Aby wyobrazić sobie drugi wymiar tablicy, trzeba by wyimaginować sobie pociąg, który jechałby jednocześnie po dwóch torach (na chwilę zapomnijmy że te tory powinny iść w przeciwnych kierunkach), więc jednym wymiarem będzie numer toru, drugim numer wagonika (liczone od zera). Dlaczego zmienne zgrupowane w tablicy muszą mieć ten sam typ? Jest to spowodowane koniecznością wyliczenia miejsca, gdzie znajduje się element o danym indeksie. Tak naprawdę komputerowi wystarczy, aby elementy zajmowały tę samą ilość pamięci – ale język jest napisany w taki a nie inny sposób i elementy muszą być tego samego typu i już.

[C#] Operatory

Artykuł zgłoszony do konkursu na stronie http://strefainzyniera.pl

Wstęp

Większość oprogramowania, jakie przyjdzie nam pisać, będzie wymagała użycia operatorów. I nie mówię tu wyłącznie o operatorach znanych nam z matematyki – czyli „+”, „-” i tak dalej. Nawet w najprostszych aplikacjach używających chociażby instrukcji warunkowej używamy operatorów porównania. Manipulując zmiennymi zwykle używamy operatorów przypisania i konwersji.
Operatory, to nic innego, jak funkcje, które zwracają wartość, za wejście biorąc wartości, które w wersji prefiksowej występują zaraz po znaku, postfiksowej gdy przed znakiem, zaś infiksowej, pobiera sąsiadów po obu stronach. Jeżeli operator pobiera trzy wartości, symbole składające się na niego rozdzielają wartości wejściowe funkcji wywoływanej (niewidocznie dla programisty) przez operator. Tylko operator wywołania „()” oraz operator pobrania elementu wskazywanego przez indeks „[]” biorą swój operand w środek znaków, jakie się na niego składają.
Dziś omówimy jakie możliwości dają nam operatory w języku C#. Pełną ich listę możemy znaleźć w dokumentacji języka, dostępnej pod adresem http://msdn.microsoft.com/pl-pl/library/6a71f45d.aspx .

Jak Jasio z dowcipów liczby w c# konwertował

Jak napisałam na FB, pokażę kawałek kodu, który może się przydać początkującym, ale tak zupełnie początkującym, jak uczniowie w szkole średniej, którzy pierwszy raz mają programowanie w szkole. Załóżmy, że dana szkoła poszła z duchem czasu i nie uczy już pascala, ale na przykład takiego c#a. I dzieci dostały zaraz po kalkulatorze w textmode standardowo napisać konwerter liczb dziesiętnych do bin, hex i oct.

Jak zrobić przezroczystego ApplicationBara, który nic nie przykryje

Czasami zdarza mi się programować pod Windows Phone (tak, również na starego – sprzęt mam jaki mam, brak vtx/slat boli).
W trakcie pisania pewnego projektu zauważyłam, że ustawienie opacity w ApplicationBar na wartość mniejszą niż 1 (aby uzyskać przezroczystość) kończyło się tym, że nie szło kliknąć w ostatni (widoczny, ale przysłonięty appbarem) element umieszczony na stronie.

Ładny listing w c#

Oczywiście, wiem, że idzie to zrobić jedną linijką w bashu czy innych zabawkach:) Ale pisałam 4fun, żeby sobie przypomnieć język;)

Inspiracją był pewien listing z książki. Został on ponumerowany w pewien sposób. Pomyślałam sobie – też chcę mieć coś takiego. No i siadłam i klepnęłam w kilka minut taki oto kawałek kodziszcza.

Podstawy c# – czyli jak zapalić na ekranie lampkę od capslocka ;)

Pomysł na aplikację wyszedł w trakcie jednej z rozmów z moim narzeczonym, dłuższy czas temu. Chodziło o to, żeby wygodnie zasygnalizować, czy świeci się capslock. Oczywiście informuje nas o tym dioda na klawiaturze, ale chcieliśmy coś większego. Aplikacja wyszła całkiem prosta, a więc nadaje się do wyjaśnienia kilku podstaw.

Zrzuć notatkę z kodu;)

Witajcie czytelnicy;)
Wiosenka przyszła to i mi się częściej pisać zachciało. Lody puściły, te sprawy. Dzisiaj mam dla was kawaluntek kodu, którego omówię dla treningu. Język oczywiście c#, acz można go łatwo przetłumaczyć na dowolny inny i to będzie działać, bez problemu. Zdaję sobie sprawę, że można to napisać w 3 linijkach, ale wtedy nie byłoby o czym opowiadać.

Wyobraźmy sobie taką sytuację. Siedzimy sobie w commandline, chcemy na szybko sobie zapisać jakąś notatkę.
Ale tak zupełnie na szybko. Wpisując notuj hehe i w notatce mamy hehe. Notatka jest tworzona na pulpicie (gdzie najłatwiej ją znaleźć). Nie wykrzacza się w momencie kiedy plik już istnieje, tylko szuka wolnej nazwy i się tworzy. Poniżej wklejam kod, a następnie go nieco omówię.

Dawać na studia!

Cześć wam!

Dziś będzie o studiowaniu. Surfując po sieci nader często zauważam, że coraz więcej osób przekonuje do rzucenia studiów, a nawet zaniechania podjęcia próby studiowania. To doprawdy smutne. Fakt, każdy powinien się zastanowić, czy studiowanie jest mu potrzebne do szczęścia, ale propaganda anty-studencka nie jest moim zdaniem nikomu do niczego potrzebna.
Drodzy maturzyści – studia to wspaniała przygoda i warto ją rozpocząć, nawet, jeśli nie zamierzacie wozić się z dyplomem uczelni wyższej, zwanym zwyczajowo „papierkiem” a znaczącym niewiele więcej. Co oferuje wam uczelnia wyższa?

WTF???

Dobra. Przez jakiś czas blog był niedostępny. Fajnie, gdybyście wiedzieli czemu. Otóż ktoś niegrzeczny rzucił nam ddosa na server:(. W dodatku, jak to head admin…

Odezwa do narodu

Jesteś moherem? hakerem? kibolem? strajkującym robotnikiem? partyzantem?

Działaczy AK też  władze nazywały przestępcami!

Wypowiadasz się anty faszyzmowi? za wolnością słowa? przeciw aborcji? przeciw cenzurze i inwigilacji?

To ty jesteś przyszłością narodu!

Jesteś przeciw GMO, przeciw łupkom, za recyklingiem i energią odnawialną?

Dzięki tobie ziemia może ocaleć!

Nigdy nie poświęcisz wolności dla bezpieczeństwa? Jesteś przeciwnikiem inwigilacji? Wolność informacji to dla ciebie wartość, a nie tylko hasło?

To dzięki Tobie naród przetrwa!

Wiesz, że badania naukowe są fałszowane, leki trują, informacja o nowych technologiach jest chowana do szuflady, banki kradną, a media kłamią?

Dzięki Tobie prawda może wyjść na jaw!

Alternatywne metody dostępu do globalnej sieci – czyli jak być partyzantem i pozostać online

Uznałam ten temat za warty opisania, po wczorajszej rozmowie z jednym ze starych znajomych.
Czasami honor/fundusz/sytuacja nam nie pozwala na w miarę normalny dostęp do Internetu – co wtedy robić? Można wszem i wobec mówić- nie mam neta, nie podziałam, ale można wziąć sprawy w swoje ręce. Co chcemy osiągnąć?

  • Mieć dostęp do sieci umożliwiający wymianę informacji (wysłanie maila, irc, xmpp, gg, oraz przeglądanie www przeglądarkami tekstowymi – z grafiki [i reklam, śledzików] rezygnujemy, czy wyszukiwanie www przez gosh – bo google za ciężki)
  • Zadbać, by nasz ruch nie był przypisany do naszego imienia i nazwiska (lub jakichkolwiek innych danych – słowem – żadnych umów i podpisów na durnych regulaminach zezwalających na permanentną inwigilację)
  • Mieć możliwość w miarę swobodnego użycia terminala tekstowego (dopuszczamy zacięcia przy pgup i komendach dużo plujących na ekran, oraz pisanie „w powietrzu/na oślep”- ważne że połączenie ma być)

Słowem, przepustowość rzędu kilku KB/s powinna nam spokojnie wystarczyć.

WP a android

Do teraz nie napisałam relacji ani z itadu ani z SBS i jeszcze będziecie musieli poczekać z pół roku:p Ale że k4be do mnie z txt że „strona się popsuła bo treść się nie zmienia” to dodam jakąś na szybkiego. Wrzucę kod z androida z laborek i port tego samego na WP. Taaak na wp się pisze o wiele zajebiściej, bo w visual studio:pp

Najbardziej zajebisty event wannabe:p

 Security Bsides to jedyna ogólnoświatowa seria eventów związanych z bezpieczeństwem, w którym obok młodych adeptów sztuki pojawiają się fachowcy z wieloletnim stażem. Jest to wydarzenie jedyne w swoim rodzaju, a to za sprawą dostępności dla każdego – zapewnianej dzięki braku odpłatności za udział. Można zobaczyć prelegentów, którzy nie przebiliby się do konferencji organizowanych
przez wielkie korporacje. Wszyscy – od kapituły organizacyjnej po prelegentów są wolontariuszami, a jedynym źródłem, z którego można pokryć koszty organizacji, są sponsorzy.