Wpisy z tagiem ‘C#’

Short Tip #05: Singleton pattern (2010-4-30)

Wzorzec Singleton jest chyba najprostszym ze stosowanych „nazwanych” wzorców. Jego koncepcja jest bardzo prosta: w cyklu działania aplikacji może być utworzona TYLKO JEDNA instancja danego obiektu i powinna być ona dostępna z każdego miejsca w kodzie. W implementacji klasy (przykładowa implementacja poniżej) są ważne następujące elementy: prywatna, statyczna instancja klasy singletona konstruktor, który jest albo […]

Skala szarości i sepia (2010-4-17)

Na początku miałem zamiar zrobić z tego tematu krótki tekst, który w sam raz nadawałby się na Short Tip. Jednak testowy projekt rozrósł się na tyle (a przy okazji doszedłem do paru ciekawych wniosków), że grzechem byłoby niepoświęcenie temu „śledztwu” kilku minut i słów więcej.

C#: eksport danych do pliku XLS (2010-3-27)

Jakiś czas temu pojawiła się w firmie, w której pracuję potrzeba uaktualnienia narzędzia do prezentacji danych. Jako, że źródła poprzedniej wersji (nie pisanej przeze mnie) poszły.. khem.. hen daleko w momencie spalenia się dysku twardego, trzeba było napisać tą aplikację od nowa, co okazało się interesującym doświadczeniem. Było to typowe zagadnienie inżynierii odwrotnej. Opisywać wyświetlania […]

Short Tip #04: słowa kluczowe jako nazwy zmiennych (2010-3-26)

Czasem chciałoby się nazwać zmienną tak, jak słowo kluczowe języka, chociażby zmienną typu int chcielibyśmy nazwać właśnie.. „int„. Taka konstrukcja nie przejdzie, zakończy się błędem kompilacji: C# umożliwia taką operację, wystarczy przed nazwę zmiennej wstawić „@”, tak jak poniżej: To raczej ciekawostka, niż użyteczny ficzer, bo nie wyobrażam sobie zastosowania takiego kodu:

Short Tip #03: Extension Methods (2010-3-19)

Dla każdego programisty błogosławieństwem są (a przynajmniej powinny być) gotowe biblioteki. Sam regularnie korzystam z STL# ;), czyli System.Collections.Generic. Są to skompilowane klasy, jednak .NET 3.5 (a dokładniej C# 3.0) dostarcza możliwość dodania do nich własnoręcznie zaimplementowane metody. Konstrukcja ta nosi nazwę Extension Methods, a korzysta się z niej w następujący sposób:

Short Tip #02: widoczność Auto-Implemented Properties (2010-3-13)

Stare chińskie przysłowie mówi, że „Krótki fragment kodu wart jest więcej niż tysiąc słów.” Nie przedłużając więc: Uściślając: w przykładowej klasie jest prywatna zmienna _member, do której odwołujemy się z zewnątrz przez publiczną właściwość (ang. Property) Member. Mechanika obsługi tej zmiennej przez właściwość nie jest zbyt wyszukana, więc możemy zastąpić ją tzw. Auto-Implemented Property (lub […]

Short Tip #01: operatory ?: oraz ?? w C# (2010-3-5)

Poniżej krótki sposób jak pozbyć się ze swojego kodu pewnych potworków. Bardzo częstą konstrukcją if (..) then .. else .., jednak niech Was ręka boska broni od napisania czegoś takiego: Zamiast tego proponuję użycie operatora „?” (znak zapytania), o następującej składni: który zwraca expression1, jeżeli warunek condition jest prawdziwy lub expression2 w przeciwnym przypadku. Refactoring […]

notyfikacje (2010-3-2)

Sposobów na komunikację aplikacji z użytkownikiem jest kilka. Powiadomieniem o zakończeniu długo trwającej operacji (np. ściąganie pliku, filtrowanie obrazu, wykonywanie złożonych obliczeń matematycznych) może być informacja na pasku statusu, tzw. „balloon tip”, odegranie dźwięku lub wyświetlenie okna modalnego (nie zalecam). Co jednak w przypadku, gdy użytkownik zminimalizował okno? Może dowiedzieć się o zakończeniu operacji gdy […]

to-GOTO-or-not-to-GOTO (2010-2-12)

Podobno pierwszymi dwoma zdaniami, jakie wypowiada każdy programista są: „Będę zwalniał pamięć.” oraz „Nigdy, przenigdy nie będę używał instrukcji GOTO (oprócz języków assemblerowych)”. Wpojone zasady dobrze mieć na uwadze, ale czy zdarzają się sytuacje, w których użycie Instrukcji-Której-Nazwy-Nie-Wolno-Wymawiać jest konieczne? Przychodzą mi do głowy dwa przypadki:

Projekt: galaretka (2009-12-10)

Symulacja ma niezliczoną wręcz ilość zalet: pozwala zaobserwować i przeanalizować zjawiska fizyczne bez konieczności przygotowywania realnego środowiska zmiana parametrów na bieżąco, pozwala obserwować jednoczesną zmianę zachowania środowiska świetnie wygląda 😉 Kierując się powyższymi plusami jako wytycznymi, powstał symulator galaretki. Założenia projektowe: symulacja ruchu sprężystego układu 64 mas połączonego sprężyście ze sztywną ramą, którą steruje użytkownik […]