dotnetomaniak.pl - Artykuły z tagiem C#

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 3280 dni, 2 godziny, 32 minuty temu pzielinski 348 źrodło 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 3281 dni, 20 godzin, 41 minut temu psz750 197 źrodło rozwiń

Artykułów na temat Garbage Collector zostało napisanych już wiele. Dlatego nie będę przedstawiać dokładnie zasady jego działania, a raczej praktyczne wskazówki implementacji finalizerów i wzorca IDisposable.

Tagi: .Net, C#, IDisposable
Dziel się z innymi:
Programowanie w .NET: Zarządzanie pamięcią w .NET

Inne 3282 dni, 11 godzin, 14 minut temu psz750 218 źrodło rozwiń

Funkcja GetHashCode używana jest tylko i wyłącznie w przypadku korzystania z kolekcji typu klucz wartość jak HashSet lub Dictionary. Funkcja ta nie jest tak oczywista jak się to zdaje i napisanie poprawnej jej wersji sprawia wiele problemów.

Tagi: .Net, C#, gethashcode
Dziel się z innymi:
Programowanie w .NET: Pułapki podczas implementacji GetHashCode

Inne 3282 dni, 11 godzin, 14 minut temu psz750 92 źrodło rozwiń

Tworząc własny typ w większości przypadków definiujemy także dla niego funkcje równości. Mało kto wie jednak że C# oferuje aż 4 takie funkcje.

Tagi: .Net, C#, Equality
Dziel się z innymi:
Programowanie w .NET: Zrozumieć Equality

Inne 3282 dni, 11 godzin, 14 minut temu psz750 111 źrodło 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 3283 dni, 3 godziny, 29 minut temu pzielinski 99 źrodło rozwiń

Istnieją 4 słowa kluczowe, o których istnieniu wie niewielu programistów C#: _arglist, _refvalue, _makeref, _reftype. Stanowią one jednak ciekawostkę, o której istnieniu warto mieć pojęcie. Oficjalna dokumentacja(C# Keywords) nie wspomina o nich. Można jednak szybko przekonać się o ich istnieniu, gdyż Visual Studio podświetla je podobnie jak inne słowa kluczowe.

Tagi: C#, CLI
Źródło: jasica.net
Dziel się z innymi:
Nieudokumentowane słowa kluczowe C#

Inne 3284 dni, 10 godzin, 23 minuty temu vveasel 308 źrodło 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 3286 dni, 3 godziny, 31 minut temu pzielinski 120 źrodło rozwiń

Chce z poziomu kodu czytać konfigurację z pliku app.config (projekty desktopowe) lub Web.config (projekty webowe). Na przykład kolekcję zaufanych applikacji, które mogą korzystać z naszego serwisu. Do tego trzeba stworzyć 3 klasy dziedziczące po ConfigurationSection, ConfigurationElementCollection oraz ConfigurationElement.

Tworzenie własnej ConfigurationSection | Show me the code

Windows 3287 dni, 18 godzin, 8 minut temu http://krzysztofmorcinek.wo... 52 źrodło rozwiń

Wystąpienie BadImageFormatException, wśród doświadczonych developerów, rodzi pytanie czy przez przypadek nie została załadowana zewnętrzna biblioteka w złej wersji- 32 lub 64 bitowej. Nie jest to jednak jedyna przyczyna występowania tego wyjątku.

Źródło: jasica.net
Dziel się z innymi:
BadImageFormatException - problem z 32 i 64 bitowymi bibliotekami po raz N-ty?

Inne 3287 dni, 18 godzin, 8 minut temu vveasel 84 źrodło 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 3287 dni, 18 godzin, 8 minut temu pzielinski 157 źrodło rozwiń

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 3290 dni, 12 godzin, 30 minut temu psz750 226 źrodło 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 3290 dni, 12 godzin, 30 minut temu psz750 271 źrodło 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 3291 dni, 3 godziny, 58 minut temu pzielinski 78 źrodło 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 3294 dni, 19 godzin, 20 minut temu pzielinski 204 źrodło 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 3299 dni, 16 godzin, 8 minut temu pzielinski 240 źrodło 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 3299 dni, 16 godzin, 8 minut temu tsubik 74 źrodło 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”.

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

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 3304 dni, 3 godziny, 14 minut temu psz750 207 źrodło rozwiń

1 2... 44 45 46 47 48 49... 71 72

Konkurs z Code Europe - ranking

1
(30,04)
3
(15)
4
(15)
5
(5,01)

październik

listopad

09.

Najaktywniejsi w tym miesiącu

2
(30,06)
4
(25,03)
7
(19,01)
8
(15)
9
(15)
10
(15)