Wpisy z tagiem ‘Short Tip’

Short Tip #10: modyfikacja domyślnych szablonów plików VS2008 (2010-8-3)

Każdy programista to leń, już kiedyś o tym pisałem 😉 Kiedy dodajemy do projektu nową klasę/interfejs/ogólnie plik z kodem* zawiera on określone z góry rzeczy (nazwa klasy, domyślną sekcję using itp.) Można zmodyfikować istniejący szablon plików, aby wygenerowany kod był od razu bardziej dostosowany do naszych potrzeb. W moim przypadku jest to wydzielenie regionów na […]

Short Tip #09: GetHashCode() dla wektora (2010-7-19)

Specyfika pewnej części projektu, nad którym obecnie pracuję wymagała zastosowania tablicy haszującej. Struktury danych, które są przechowywane w tablicach (jedna tablica na typ) wyglądają następująco: Okazało się, że metoda GetHashCode() domyślnie wygenerowana przez IDE dla klasy Vector3 jest niewystarczająca – błędy pojawiły się już przy próbie wczytania wierzchołków, krawędzi i trójkątów prostego sześcianu. Chwila zastanowienia […]

Short Tip #07: C# i "?" po raz kolejny (2010-5-25)

W jednej z notek z serii „Short Tip” pisałem o użyciu operatorów ? i ??. Tym razem znak zapytania pojawi się w innym kontekście. Pierwsze założenie (plus wyjaśnienie, tak na wszelki wypadek): zakładam, że znane są pojęcia (i rozróżnienie na) Value types i Reference types. W dużym skrócie: Value types (czy „typy wartościowe” to dobre […]

Short Tip #06: Diagnoza, zwiad i rozpoznanie (2010-5-4)

Oprócz standardowych metod Debugowania aplikacji w Visual Studio (breakpoint’y + klawisze F10 i F11) czasami przydaje się wypisanie informacji do konsoli. W projekcie Windows Forms można to zrobić za pomocą następującego fragmentu kodu: W XNA można: informacje o stanie aplikacji na każdym etapie jej tworzenia wyświetlać za pomocą HUD-a (tu pozdrowienia dla pracoholików) skorzystać ze […]

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 […]

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 […]