Ostatnio natknąłem się na coś, co... blew my mind (wydymało mi umysł?). Bardzo krótko wspomniał o tym Bartek Pampuch na ostatnim MTS i utkwiło mi w pamięci, ale dopiero kilka dni temu niechcący przyjrzałem się "owemu czemuś" bliżej. Owo cuś to biblioteka Reactive Extensions (Rx) implementująca założenia programowania reaktywnego by Microsoft. Nie będę zagłębiał się w teorię czy omawianie szczegółów, ponieważ sam dopiero zacząłem skrobać powierzchnię tej megazajebistej koncepcji i post... [More]

Jak potrafi naśmiecić przemęczona mózgownica

1 grudnia 2009 06:50 w kategorii: pro
Tagi: ,
Jakiś czas temu pod koniec jednego z programistycznych rajdów od świtu do świtu pojawiło się zapotrzebowanie na funkcjonalność "masz tu liczbę i zwróć X jej ostatnich cyfr w postaci stringa;  w razie potrzeby wypełnij jego początek zerami". Wydaje się banalne i byłem pewny, że w ciągu kwadransa załatwię to odpowiednim formatowaniem integera. Po półtorej godziny (sic!) lektury MSDN, różnych blogów i popełniania głupich eksperymentów nadal byłem w kropce. Jest to szczególnie irytuj... [More]

Ileż to razy zmuszeni jesteśmy pisać kod temu podobny: 1: list.ValueMember = "Id"; 2: list.DisplayMember = "Name"; Na CodeGuru niejednokrotnie pytano o jakiś sposób na rozwiązanie tego problemu. Podawanie stringów jest ZŁE, niewygodne i bardzo podatne na błędy wszelakie. Zmiana nazwy właściwości rozwala UI, refactoring bez dodatkowych narzędzi jak Resharper potrafi napsuć sporo krwi (a i z pomocą R# wcale przyjemny nie jest)... Syf, kiła i mogiła. Postano... [More]

Oto trzy przykładowe scenariusze, które wykorzystują moc daną nam przez Andersa Hejlsberga i spółkę:1. Sprawdzenie, czy wszystkie textboxy są wypełnionePrzykładzik banalny i w wielu sytuacjach niepraktyczny, ale ładnie prezentujący wygodę pisania kodu "the 3.0 way".Stary kod: 1: private bool AreAllTextboxesFilledOldWay() 2: { 3: foreach (Control c in this.Controls) 4: { 5: TextBox tb = c as TextBox; 6: if (tb == null) 7: continue; 8: 9: if (tb.Text == string.Empty) ... [More]

let - revisited

13 lipca 2008 20:02 w kategorii: pro
Tagi: , , ,
W poprzednim poście zapoznaliśmy się ze słówkiem "let". Dzisiaj do niego powrócimy i zobaczymy dlaczego należy korzystać z tej konstrukcji z uwagą. Jak wiadomo diabeł tkwi nie tylko w kobietach, ale i w szczegółach. A więc do rzeczy...Przykład z ostatniego posta jest nadal aktualny - poszukujemy osób z wiekiem mniejszym niż średnia wieku całej kolekcji. Poniżej dwa sposoby:1) Sposób pierwszy, znany od dawien dawna, w dzisiejszych czasach można by rzec "lamerski": 1: double average = persons.Av... [More]

let - explained

7 lipca 2008 19:23 w kategorii: pro
Tagi: , , ,
Wraz z LINQ do C# zawitało słówko kluczowe let. Najpierw krótkie naszego dzisiejszego gościa przedstawienie. Wyobraźmy sobie klasę Person z imieniem, nazwiskiem oraz wiekiem. Idąc dalej wyobraźmy sobie zadanie: wybrać te osoby, których wiek jest mniejszy niż średnia wieku wszystkich osób w zbiorze. Konstrukcja let daje nam możliwość zapamiętania danej wartości w samym sercu zapytania LINQ, co pozwala nam zwiększyć jego czytelność i uniknąć deklarowania zmiennych poza jego wnętrzem. Przykład: 1: ... [More]