dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem C#

W LINQ mamy dwie metody First() oraz Single(). Obie metody zwracają po jednym rekordzie. Jaka jest więc między nimi różnica? Zobaczmy na kawałek kodu i jego reprezentację w bazie MS SQL.

Tagi: .Net, C#, Linq
Dziel się z innymi:
Programowanie w .NET: Czym się różni Single od First w LINQ

Inne 1714 dni, 10 godzin temu psz750 222 rozwiń

Extension Methods można wykorzystać nie tylko do dodawania metod do istniejących klas, ale także jako najprostszy mechanizm mapujący. Nie musimy tworzyć całej biblioteki do mapowania, wystarczy dodać do klasy odpowiednią metodę np. Map.

Dziel się z innymi:
Programowanie w .NET: Mapowanie obiektów - Extension Methods

Inne 1714 dni, 10 godzin temu psz750 257 rozwiń

Zaczynamy od próbki kodu:staticclass StringExtensions { publicstaticvoid SayHello(thisstring str, string message) { Console.WriteLine(string.Format("Hello:{0}", message)); } } internalclass Program { privatestaticvoid Main(string[] args) { string str =null; str.SayHello("Piotr"); } } Co według Was wydarzy się po uruchomieniu programu? Na pierwszy rzut oka może wydawać się, że wystąpi NullReferenceException ponieważ wywołujemy metodę na nieistniejącym obi...

Dziel się z innymi:
Piotr Zieliński » Code review: method extensions oraz call\callvirt

Inne 1715 dni, 1 godzinę, 27 minut temu pzielinski 77 rozwiń

W C# typy proste przekazywane są przez wartość. Oznacza to, że za każdym razem wszystkie bity są kopiowane. Ponadto jakiekolwiek operacje dokonywane na takim polu, nie są widoczne na zewnątrz, na przykład:internalclass Program { privatestaticvoid Increment( int value) { value++; } privatestaticvoid Main(string[] args) { int value =5; Increment(value); Console.WriteLine(value); } } Czasami zachodzi potrzeba przekazania wyniku z powrotem albo ze wz...

Tagi: C#, out, Ref
Dziel się z innymi:
Piotr Zieliński » C#: ref vs. out

Inne 1718 dni, 16 godzin, 49 minut temu pzielinski 191 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 1723 dni, 13 godzin, 37 minut temu pzielinski 239 rozwiń

VSpniff is a simple tool to find missing references to files in the VS project. You could avoid excluded files problem after bad merge or something else.

Źródło: tsubik.com
Dziel się z innymi:
[EN] Keep your files in VS project included. Fast and elegant solution

Narzędzia 1723 dni, 13 godzin, 37 minut temu tsubik 74 rozwiń

Praca z obiektami COM może być trudna i czasami frustrująca. Przykład:Worksheet sheet = excelApp.Worksheets.Open(...); // Jakaś logika. Odczytywanie lub modyfikacja arkusza itp.Marshal.ReleaseComObject(sheet); Marshal.ReleaseComObject(excelApp); O obiektach COM należy pamiętać, również po zakończeniu pracy z nimi – należy zwolnić wszelkie zasoby. Nie zawsze jest to proste i oczywiste. Powyższy kod spowoduje memory leak ponieważ Worksheets również musi zostać zwolniony. Metoda Open jest wywołana na ob...

Tagi: C#, COM
Dziel się z innymi:
Piotr Zieliński » Code Review: obiekty COM oraz zasada “double dot”.

Programowanie rozproszone 1723 dni, 21 godzin, 41 minut temu pzielinski 121 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 1726 dni, 22 godziny, 13 minut temu pzielinski 126 rozwiń

Temat poświęcony jest zagadnieniu definiowania własnych funkcji w modelu koncepcyjnym Entity Framework oraz ich wykorzystania w zapytaniach LINQ to Entities.

Dziel się z innymi:
Entity Framework – własne funkcje w zapytaniach LINQ to Entities « Developer notes

Inne 1728 dni, 43 minuty temu psz750 203 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 1729 dni, 22 godziny, 55 minut temu pzielinski 146 rozwiń

Przy korzystaniu z nHibernete'a czasem zachodzi potrzeba, aby prócz tabel, które są mapowane z obiektów mieć jakieś dodatkowe. Ja ostatnio miałem taką potrzebę w związku z Quartz.NET, który ma możliwość przechowywania swoich triggerów i akcji w bazie w przypadku, gdy powinny przeżyć restart puli aplikacji.

Tagi: .Net, C#, NHibernate
Dziel się z innymi:
.NET blog: nHibernate - dodatkowe tabele w bazie

Inne 1733 dni, 21 godzin, 4 minuty temu psz750 99 rozwiń

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 1735 dni, 20 godzin, 11 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 1737 dni, 2 godziny, 51 minut temu psz750 332 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 1739 dni, 2 godziny, 4 minuty 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 1741 dni, 14 godzin, 46 minut temu Yuras 161 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 1742 dni, 8 godzin, 46 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 1745 dni, 11 godzin, 26 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 1746 dni, 22 godziny, 21 minut 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 1748 dni, 2 godziny, 16 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 1748 dni, 2 godziny, 16 minut temu Yuras 227 rozwiń

1 2... 33 34 35 36 37 38... 60 61
Szkolenia SecurITum

październik

Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 626,47)

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,15)

8

Damian (9 056,1)

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 608,06)

15

jedmac (3 318,39)

16

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

17

spetz (3 078,27)

18

CaMeL (2 954,87)

19

lkurzyniec (2 633,85)

20

mnikolajuk (2 596,93)