dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem C#

W C# istnieje kilka metod sprawdzania czy obiekty są takie same. Czasami budzi to zamieszanie i dlatego w dzisiejszym wpisie chciałbym rozjaśnić wszelkie różnice i wyjaśnić jak prawidłowo powinno to być zaimplementowane. Mamy dwa sposoby porównywania obiektów. Pierwszy to sprawdzenie czy wskazują na taki sam obszar pamięci. Druga metoda polega na porównaniu wszystkich pól i sprawdzeniu czy są takie same. Jeśli pola mają taką samą wartość to przyjmujemy, że obiekty są sobie równe (value identity). W .NE...

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Porównywanie obiektów

Inne 1575 dni, 21 godzin, 31 minut temu pzielinski 207 rozwiń

W dzisiejszym wpisie pokażę w jaki sposób za pośrednictwem Entity Framework możemy wywoływać procedury składowane zwracające wyniki w postaci wartości skalarnej lub poprzez parametr wyjściowy.

Dziel się z innymi:
Entity Framework – wywoływanie procedur składowanych « Developer notes

Inne 1577 dni, 4 godziny, 12 minut temu psz750 317 rozwiń

W ostatnim poście przedstawiłem sposób na implementację unii w C#. Dziś kilka przykładów. Proszę jednak zwrócić uwagę, że unie zostały wprowadzone w czystym C, który nie miał nic wspólnego z programowaniem obiektowym. Dzisiaj możemy wiele konstrukcji lepiej napisać, wykorzystując klasy. Unie również ważną rolę odgrywały w optymalizacji.  W c# sprawa wygląda inaczej, ponieważ jeśli zgodziliśmy się na zarządzaną pamięć przez GC, raczej nie zależy nam na oszczędzaniu kilku bajtów. Niemniej jednak klasyczny...

Tagi: C#, unie
Dziel się z innymi:
Piotr Zieliński » Unie w C#–zastosowanie

Inne 1579 dni, 3 godziny, 25 minut temu pzielinski 178 rozwiń

Jednym z bardziej charakterystycznych zadań, którego implementację można wykazać w szeregu różnych aplikacji dostępnych na rynku, jest praca wykonywana w stałych określonych interwałach czasu. Przykładów nie trzeba daleko szukać, ponieważ wystarczy spojrzeć choćby na aplikacje mobilne, o których trochę na tym blogu się pisze. W przypadku smartfonów, zjawisko to widoczne jest w aspekcie synchronizacji. Sprawdź statusy na Facebooku co 3 godziny, ściągnij wiadomości RSS co 6 godzin, aktualizuj kalendarz co ...

Tagi: C#, Threading
Dziel się z innymi:
Wielowątkowość w C# - klasa Timer - Alt Control Delete

Architektura 1581 dni, 16 godzin, 7 minut temu Yuras 160 rozwiń

Dziś trochę o .NET Framework i strukturze BigInteger. Myślę, że komuś może to oszczędzić czasu na pisaniu własnych implementacji. Każdy z nas korzystał z typów takich jak short, int czy long. W większości przypadków w zupełności one wystarczającą i pokrywają większość scenariuszy. Czasami jednak aplikacja musi operować na dużo większych liczbach niż 32 czy 64 bitowe zmienne. BigInteger potrafi przechować dowolnie wielką liczbę całkowitą (ujemną lub dodatnią). BigInteger znajduje się w bibliotece System...

Tagi: BigInteger, C#
Dziel się z innymi:
Piotr Zieliński » Klasa BigInteger

Inne 1582 dni, 10 godzin, 7 minut temu pzielinski 127 rozwiń

W poprzednim poście omówiłem atrybut StructLayout. Dzisiaj z kolei więcej przykładów. Głównie StructLayout wprowadzono aby móc wykonywać kod niezarządzany w .NET. Czasami wciąż zachodzi potrzeba wykorzystania niektórych funkcji z WinAPI. Cześć funkcji przyjmuje jako parametr struktury danych, które oczywiście musimy zmapować na strukturę c#. Na przykład, załóżmy, że mamy następującą strukturę:typedef struct DISPLAYDEVICE { DWORD cb; TCHAR DeviceName[32]; TCHAR DeviceString[128]; DWORD StateFlag...

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » StructLayout–zastosowanie

Inne 1585 dni, 12 godzin, 46 minut temu pzielinski 69 rozwiń

If you have read about the new features in 4.0 then probably you stumbled on a SpinWait structure and a MSDN article and the example code it provides. I'm going to show you what I think it's wrong with it.

Dziel się z innymi:
[EN] Lock Free And SpinWait MSDN Example | Passion of Programming in .NET

Inne 1586 dni, 23 godziny, 42 minuty temu http://badamczewski.blogspo... 32 rozwiń

Zanim przejdę do wyjaśniania po co został wprowadzony atrybut StructLayout, najpierw wyjaśnię jak pola w strukturach danych są rozmieszczane w pamięci. Weźmy na przykład taką strukturę:struct SampleStruct { publicbyte OneByte; publicint FourBytes; publicbyte OneByte1; } Ile pamięci powinno zostać zaalokowanej dla powyższej struktury? Może wydawać się, że 6 ponieważ Integer zajmuje 4 a Byte 1. Ze względu na optymalizacje nie jest to takie proste i oczywiste. Na moim komputerze jest to 12. Proc...

Tagi: C#, StructLayout
Dziel się z innymi:
Piotr Zieliński  » StructLayout – wprowadzenie

Inne 1588 dni, 3 godziny, 37 minut temu pzielinski 97 rozwiń

Tydzień temu w pierwszym poście poświęconym synchronizacji, przedstawiłem Wam trzy kluczowe zagadnienia związane z tym tematem. I choć lock, Monitor oraz Mutex pozwalają nam rozwiązać naprawdę dużą liczbą problemów dotyczących wielowątkowości, to warto wiedzieć, że jest to tylko część programistycznego orężu w jaki wyposażył nas Microsoft. Dziś chciałbym Wam przedstawić cztery kolejne klasy, które powinny uzupełnić temat rozpoczęty tydzień temu i zasadniczo wyczerpać kwestię synchronizacji. Bez zbędnego ...

Dziel się z innymi:
Wielowątkowość w C# - synchronizacja wątków cz. 2 (Semafor, AutoResetEvent i ManualResetEvent, Interlocked) - Alt Control Delete

Architektura 1588 dni, 3 godziny, 37 minut temu Yuras 216 rozwiń

Jak wiemy, każdy obiekt, zarówno reference jak i value, pochodzi pośrednio\bezpośrednio od klasy object. Nie chce omawiać szczegółów ale jedną z protected metod dostarczonych przez object jest właśnie MemberwiseClone. Do czego ona służy? W skrócie: do wykonania tzw. płytkiej kopii (shallow copy). MemberwiseClone kopiuje obiekt pole po polu. Niestety jest to płytka kopia więc jak jakiś obiekt zawiera referencje do innych obiektów wtedy jedynie adres zostanie sklonowany a nie całe drzewo obiektów. Z typam...

Dziel się z innymi:
Piotr Zieliński  » Metoda MemberwiseClone

Inne 1590 dni, 23 godziny, 44 minuty temu pzielinski 100 rozwiń

W poprzednim poście podałem krótki fragment kodu, który można było zoptymalizować. Wspomniałem o parametrze StringComparison, który zwykle sprawia problemy w zrozumieniu. W dzisiejszym wpisie postaram się wyjaśnić różnicę między poszczególnymi porównaniami. Dla przypomnienia istnieją następujące wartości StringComparison: 1. Ordinal  – domyślna wartość. Znaki zamieniane są na wartości numeryczne  i wtedy porównywane. Zdecydowanie najszybsza metoda jeśli chodzi o wydajność. 2. OrdinalIgnoreCase – tak ja...

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Porównywanie string’ów część II – ustawienia regionalne, StringComparison

Inne 1594 dni, 3 godziny, 4 minuty temu pzielinski 102 rozwiń

Kilka dni temu zainicjowałem cykl postów związanych z wielowątkowością. Rozpocząłem dość standardowo, bo od wyjaśnienia istoty tego zagadnienia i przedstawienia prostych wątków. Wiedza zawarta w tamtym wpisie, powinna w wielu przypadkach okazać się wystarczająca - szczególnie jeśli w naszej aplikacji mamy tylko jeden wątek dodatkowy, który stworzony jest tylko po to by odciążyć wątek główny. Takie proste rozwiązanie nie będzie jednak zawsze do końca wystarczające. Problemy pojawią się w sytuacji gdy wąt...

Tagi: C#, wątki
Dziel się z innymi:
Wielowątkowość w C# - synchronizacja wątków cz. 1 (lock, Monitor, Mutex) - Alt Control Delete

Architektura 1595 dni, 54 minuty temu Yuras 149 rozwiń

Kod:if(anyText.ToLower()=="tekst") { Console.WriteLine("Zmienne takie same"); } Kod ma na celu sprawdzenie czy jakaś zmienna jest równa danemu strumieniowi znaków. Nie chcemy brać pod uwagę wielkości liter więc dlatego używamy funkcji ToLower. Zatem if zwróci true gdy anyText jest równy “tekst” lub “TEKST” itp. Rozwiązanie ma jedną wadę – tworzony jest nowy, tymczasowy string po wywołaniu metody ToLower. W powyższym przykładzie będziemy mieli zatem 3 obiekty: anyText, obiekt dla “tekst” oraz obie...

Tagi: C#, Code review
Dziel się z innymi:
Piotr Zieliński » Code review: porównywanie string’ów

Inne 1597 dni, 3 godziny, 3 minuty temu pzielinski 201 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 1597 dni, 14 godzin, 29 minut temu psz750 100 rozwiń

Nie wiem jak Was, ale mnie osobiście irytuje zdarzenie w którym na górnej belce aplikacji pojawia się napis , a sam program wygląda jakby się gdzieś po drodze pogubił... Generalnie taki stan rzeczy może być spowodowany wieloma różnymi aspektami, choć zasadniczo w tym przypadku najczęściej można wskazać dwie przyczyny. Trzeba niestety tu otwarcie przyznać, że w głównej mierze są one spowodowane źle napisanym kodem przez programistów tychże aplikacji. Po pierwsze, w każdym programie może po prostu pójść c...

Tagi: C#, Thread
Dziel się z innymi:
Wielowątkowość w C# - wprowadzenie - Alt Control Delete

Architektura 1599 dni, 1 godzinę, 51 minut temu Yuras 115 rozwiń

Kolejna cześć artykułu z cyklu “Dobre i złe praktyki”: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-4.aspx

Dziel się z innymi:
Piotr Zieliński  » Dobre i złe praktyki w C# – część IV (programowanie współbieżne)

Sztuka programowania 1600 dni, 1 godzinę, 48 minut temu pzielinski 106 rozwiń

Klasa Parallel stanowi doskonałe dopełnienie do task’ów.  Dostarcza trzy statyczne metody:Invoke – współbieżne uruchomienie kilku zadań. For – współbieżna pętla FOR. ForEach – współbieżna pętla foreach. Klasa stanowi helper, ponieważ wszystkie powyższe operacje można wykonać za pomocą obiektów Task lub Thread. Implementacja jednak własnej pętli współbieżnej jest zawsze trudniejsza niż użycie po prostu gotowej metody. Zacznijmy od Invoke, przykład:staticvoid Main(string[] args) { Parallel.Invoke(Me...

Tagi: C#, Parallel
Dziel się z innymi:
Piotr Zieliński » Klasa Parallel

Inne 1601 dni, 4 godziny, 21 minut temu pzielinski 98 rozwiń

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

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Dobre i złe praktyki w C# – część III (programowanie współbieżne)

Sztuka programowania 1601 dni, 4 godziny, 21 minut temu pzielinski 170 rozwiń

W tym wpisie zajmę się omówieniem polecenia yield, udostępnionego w wersji 2.0 języka C#. Do czego służy ta instrukcja? Dzięki niej możemy tworzyć tzw. leniwe kolekcje, do których poszczególne elementy dodawane są dopiero w momencie zgłoszenia na nie zapotrzebowania. Żeby zaprezentować działanie polecenia yield, najpierw zobaczmy standardowy sposób tworzenia kolekcji.

Tagi: .Net, C#, yield
Dziel się z innymi:
Instrukcja yield return – tworzenie leniwych kolekcji danych « Developer notes

Inne 1604 dni, 15 godzin, 55 minut temu psz750 345 rozwiń

Od kilku dni można rejestrować się na darmowe egzaminy z Visual Studio 2012. Oczywiście są to egzaminy w wersji beta. Nie zmienia to jednak faktu, że w przypadku ich zdania otrzymamy pełnoprawny certyfikat. Można wybierać wśród następujących egzaminów....

Dziel się z innymi:
Darmowe certyfikaty Microsoftu

Sztuka programowania 1608 dni, 3 godziny, 51 minut temu http://janosz.myopenid.com/ 876 rozwiń

1 2... 25 26 27 28 29 30... 51 52
Szkolenia SecurITum

luty

25.

marzec

03.
Wroc#
Wrocław

kwiecień

03.
4developers
Warszawa
Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej
2015-07-22

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 510,42)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 383,84)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,85)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 418,06)

15

jedmac (3 238,38)

16

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

17

CaMeL (2 954,87)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,12)

20

FutureProcessing (2 460,11)