dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Sztuka programowania - Strona 38

Życie programisty byłoby prostsze, gdyby zawsze używał explicite CultureInfo gdy korzysta z ToString() oraz string.Format(...).

Dziel się z innymi:
Trochę kultury! | Show me the code

Sztuka programowania 1747 dni, 16 godzin, 35 minut temu http://krzysztofmorcinek.wo... 140 rozwiń

O strukturach na blogu pisałem już wielokrotnie m.in.: “Klasy i struktury w C#”, “Dlaczego struktury nie mogą posiadać konstruktora bez parametrów?”, “StructLayout – wprowadzenie”, “StructLayout–zastosowanie”. W pierwszych z tych postów, przedstawiającym różnice między klasami a strukturami napisałem, że co prawda struktury nie mogą dziedziczyć po klasach ale mogą za to implementować interfejsy. Dzisiaj chciałbym rozszerzyć to o kilka słów gdyż w tamtym wpisie ograniczyłem się tylko do stwierdzenia, że j...

Dziel się z innymi:
Piotr Zieliński » Struktury danych a interfejsy

Sztuka programowania 1749 dni, 13 godzin, 28 minut temu pzielinski 98 rozwiń

W zeszłym tygodniu na dotNETomaniaku wypromowano artykuł na temat interfejsów. Zapoznałem się z nim i odnoszę wrażenie, że autor nie rozumie w pełni roli interfejsu i myli go z klasą bazową. O taką pomyłkę rzeczywiście nietrudno, wiele klas buduje bowiem swoją funkcjonalność na podstawie interfejsów, ale to nie oznacza automatycznie, że interfejs jest ich przodkiem, zaczynem. Trzeba zacząć od tego, że choć interfejs umieszcza się w definicji klasy tak samo jak klasę dziedziczoną...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Interfejs (chciałbym sprostować), to nie jest klasa bazowa

Sztuka programowania 1753 dni, 4 godziny, 5 minut temu PaSkol 97 rozwiń

Wyrażenia lambda są łatwe w użyciu, ale jak to bywa z takimi ułatwieniami również nieświadomie można spowodować poważne problemy. Przykład:class SampleClass { } class Factory { private Type _type =typeof (SampleClass); public Func

Tagi: C#, Lambda
Dziel się z innymi:
Piotr Zieliński » Code Review: implementacja wewnętrzna wyrażeń lambda oraz metod anonimowych

Sztuka programowania 1755 dni, 16 godzin temu pzielinski 143 rozwiń

Kolejna część artykułu o dobrych i złych praktykach. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-6.aspx

Dziel się z innymi:
Piotr Zieliński  » Dobre i złe praktyki w C# – część VI

Sztuka programowania 1758 dni, 16 godzin, 6 minut temu pzielinski 337 rozwiń

Notacja węgierska to ZŁOOOOOO! Słychać to ze wszystkich stron i trudno się z tym nie zgodzić. Przedrostki nazw identyfikatorów określające typy takiego identyfikatora nigdy nie były jakimś nowatorskim rozwiązaniem – prędzej protezą. Czy oznacza to jednak, że całość tego pomysłu należy odbierać negatywnie? W mojej opinii nie. A dlaczego - o tym tenże wpis.

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » O dewaluacji węgierskiej notacji, a także o jej nadinterpretacji

Sztuka programowania 1758 dni, 16 godzin, 6 minut temu PaSkol 148 rozwiń

Wracając jeszcze do filozofowania o kodzie, dziś trochę o cechach klas, a dokładniej: pola i właściwości. Zanim wymyślono idee właściwości dostęp do pól odbywał się na dwa sposoby. Pole w klasie (np. name) mogło być publiczne i każdy miotał nim jak szatan, druga opcja to dostęp kontrolowany przez parę metod typu GetName i SetName. Umożliwiały one kontrolowanie tego kto i na jakich zasadach może korzystać z cech wewnętrznych klasy. Później, aby pominąć pisanie GetName/SetName, wymyślono właściwości, któr...

jstadnicki: Czym się różni właściwość klasy od pola klasy?

Sztuka programowania 1758 dni, 16 godzin, 6 minut temu http://jstadnicki.blogspot.... 143 rozwiń

O interfejsach napisano już wiele artykułów. Postaram się dlatego podejść do tego zagadnienia od innej strony. Na początek pytanie: czym różni się metoda wirtualna od implementacji metody z interfejsu? Mogło by się zdawać, że są to bardzo podobne operacje.

Tagi: .Net, C#, interface
Dziel się z innymi:
Programowanie w .NET: O interfejsach raz jeszcze

Sztuka programowania 1760 dni, 10 godzin, 15 minut temu psz750 197 rozwiń

O zdarzeniach było już wielokrotnie na blogu. Pokazywałem różne sposoby wywołania zdarzeń. Najpopularniejszym chyba sposobem jest poniższy wzorzec:publicclass Person { publicevent EventHandler FirstNameChanged; virtualprotectedvoid OnFirstNameChanged(EventArgs e) { if (FirstNameChanged !=null) FirstNameChanged(this, e); } } Jeśli wielowątkowość wchodzi w grę wtedy lepiej napisać:publicclass Person { publicevent EventHandler FirstNameChanged; virtualprotectedvoid O...

Tagi: C#, events
Dziel się z innymi:
Piotr Zieliński » Wywoływanie zdarzeń za pomocą metod rozszerzających

Sztuka programowania 1761 dni, 17 godzin, 2 minuty temu pzielinski 98 rozwiń

Jak przyjmować i jak zwracać kulturalnie – zastanawialiście się kiedyś na tym? Taki programistyczny savoir-vivre. Jak to zrobić, żeby mi (programiście) było wygodnie, a jednocześnie uszcześliwić przyszłego użytkownika API które tworzymy? Przecież to może być właśnie ja (ja piszący tego bloga)! Sprzedam wam dwie proste reguły (na bank są inne o których nie wiem), które warto zapamiętać lub przynajmniej sie nad nimi zastanowić. Przyjmowany parametr powinien być możliwie wysoko w drzewie dziedziczen...

Dziel się z innymi:
jstadnicki: Przyjemne funkcje

Sztuka programowania 1764 dni, 1 godzinę, 54 minuty temu http://jstadnicki.blogspot.... 144 rozwiń

Zdarzenia stanowią bardzo wygodny mechanizm monitorowania stanu obiektów. W .NET można spotkać je na każdym kroku. Kontrolki zarówno w WinForms jak i WPF, posiadają wiele zdarzeń, często kilkadziesiąt. Niestety każda deklaracja zdarzenia pochłania zasoby. Nie ma to znaczenia gdy obiekt posiada tylko kilka zdarzeń ale może to być zauważalne dla skomplikowanych klas np. kontrolek w WinForms. Każda kontrolka eksponuje dziesiątki zdarzeń a użytkownicy zwykłe korzystają wyłącznie z kilku – rzadko ma miejsce s...

Tagi: C#, EventHandler
Dziel się z innymi:
Piotr Zieliński » Optymalizacja klas z wieloma zdarzeniami – EventHandlerList

Sztuka programowania 1764 dni, 17 godzin, 5 minut temu pzielinski 120 rozwiń

Kod: sealed class FolderFilesMappings : Dictionary { // brak specyficznej implementacji czy rozszerzen } Powyższy kod przedstawia klasę, która jest wrapperem dla słownika. Rozwiązanie na pierwszy rzut oka wygląda ładnie ale osobiście zastanowiłbym się nad sensem pisania dodatkowej klasy, która tak naprawdę nic nie robi. Klasy powinny zawierać jakieś dane lub logikę. Powyższy fragment nie rozszerza funkcjonalności – wyłącznie daje opisową nazwę i skraca składnie – pisanie za każdym...

Tagi: C#, dictionary
Dziel się z innymi:
Piotr Zieliński » Code review: słowniki i podklasy

Sztuka programowania 1766 dni, 7 godzin, 41 minut temu pzielinski 157 rozwiń

O modyfikatorze sealed już kiedyś pisałem – dzięki niemu możemy zabronić dziedziczenia po danej klasie:sealedclass SealedClass { } class ChildClass:SealedClass // BLAD{ } Moim zdaniem jest on niedoceniany i zbyt rzadko używany.  Może dlatego, że nie wnosi on nic nowego do funkcjonalności czy łatwości w pisaniu kodu a “jedynie” stanowi ważny element w projekcie oraz w tym, jak inni użytkownicy z takiej biblioteki będą korzystać. Pierwszą zaletą SEALED jest wydajność. Oczywiście w większości przypadkó...

Tagi: C#, sealed
Dziel się z innymi:
Piotr Zieliński » Dlaczego warto używać modyfikatora sealed

Sztuka programowania 1778 dni, 5 godzin, 41 minut temu pzielinski 239 rozwiń

Dziś trochę o podstawach C# ale myślę, że wszyscy znajdą coś wartościowego w tym wpisie bo chcę pokazać jak to działa od środka CLR. Na początek przykład boxing’u:staticvoid Main(string[] args) { int value =3; object referencedType = value; } Boxing to nic innego jak utworzenie typu referencyjnego na podstawie value type. Object to typ referencyjny przechowywany na stercie, z kolei integer to zwykły value type przechowywany na stosie. Opisowo, boxing składa się z 3 operacji:Alokacja pamięci na s...

Tagi: boxing, C#, unboxing
Dziel się z innymi:
Piotr Zieliński » Boxing oraz unboxing–jak to działa od strony CLR

Sztuka programowania 1781 dni, 14 godzin, 17 minut temu pzielinski 127 rozwiń

Każdy kod można usprawnić / napisać lepiej. Bez wyjątku. Nie ma kodu idealnego (jak już zresztą kiedyś pisałem). Jednak w pewnym momencie trzeba przestać, tzn. nie można dopieszczać w nieskończoność jednego kawałka kodu zaniedbując wszystko dookoła. Ale nie oznacza to, że powinniśmy akceptować każde poplątane ścierwo jakie wyjdzie spod naszych skrzypiących paluchów i mówić "spoko, jest wystarczająco dobrze".

Dziel się z innymi:
Maciej Aniserowicz | Kod "wystarczająco dobry"

Sztuka programowania 1782 dni, 11 godzin, 14 minut temu psz750 255 rozwiń

Rozważmy, następujący kawałek kodu:struct Color { publicstaticexplicitoperator Color(short value) { // jakas tam konwersja - nieistotne dla przykladureturnnew Color {R = value}; } publicshort R, G, B; } Co w nim nie tak? Operatory nie są wspierane przez wszystkie języki. Podczas kompilacji wszystkie operatory zamieniane są na zwykłe metody. Na przykład operator rzutowania implicit zostanie zamieniony na op_Explicit oraz oznaczony  przez CLR specjalnym atrybutem specialname:.class seque...

Dziel się z innymi:
Piotr Zieliński » Code review: operator rzutowania

Sztuka programowania 1784 dni, 14 godzin, 59 minut temu pzielinski 146 rozwiń

Zachęcam do przeczytania kolejnej części, tym razem o LINQ: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-5.aspx

Tagi: Linq
Dziel się z innymi:
Piotr Zieliński » Dobre i złe praktyki w C# – część V (LINQ)

Sztuka programowania 1787 dni, 6 godzin, 8 minut temu pzielinski 302 rozwiń

Us, devel­op­ers, are a bit like that comic strip (from always great xkcd): We can end­lessly debate over tabs ver­sus spaces (don't even get me started), whether to use optional semi­colon or not, and other seem­ingly irrel­e­vant top­ics. We can have heated, informed debates with a lot of merit, or (much more often) not very con­struc­tive exchanges of opinions. I men­tion that to explic­itly point out, while this post might be per...

Tagi: IoC/DI
Źródło: kozmic.pl
Dziel się z innymi:
[EN] To constructor or to property dependency? | Krzysztof Koźmic on software

Sztuka programowania 1800 dni, 4 godziny, 38 minut temu http://pawlos.blogspot.com/ 87 rozwiń

Implementując w danej klasie kilka interfejsów możemy spotkać się z sytuacją, w której różne interfejsy będą posiadały składowe o tych samych nazwach. A co jeżeli metoda jednego z interfejsów ma inne przeznaczenie niż metoda innego i ich kod powinien być różny? Rozwiązaniem tego problemu jest jawna implementacja interfejsów.

Tagi: .Net, C#, interface
Dziel się z innymi:
Jawna implementacja interfejsów jako rozwiązanie konfliktu nazw « Developer notes

Sztuka programowania 1812 dni, 5 godzin, 13 minut temu psz750 100 rozwiń

Lematyzacja - pojęcie to a oznacza sprowadzenie grupy wyrazów stanowiących odmianę danego zwrotu do wspólnej postaci, umożliwiającej traktowanie ich wszystkich jako te samo słowo. W artykule omówię sposoby lematyzacji słów z języka angielskiego oraz przedstawię przykładową implementację algorytmu.

Dziel się z innymi:
Simple Solutions: [NLP] Stemming i lematyzacja

Sztuka programowania 1813 dni, 7 godzin, 12 minut temu http://horusiath.blogspot.com/ 273 rozwiń

1 2... 36 37 38 39 40
Szkolenia SecurITum

wrzesień

08.
BBQ4IT
Bielsko-Biała
14.
devConf
Kraków
20.
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 792,5)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 386,33)

8

Damian (9 121,11)

9

danielplawgo (7 235,99)

10

arek (6 807,95)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 643,06)

15

jedmac (3 318,39)

16

spetz (3 248,3)

17

http://jakub-flor... (3 224,66)

18

CaMeL (2 954,87)

19

lkurzyniec (2 672,96)

20

dpawlukiewicz (2 639,95)