dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem C#

Pytanie brzmi: czy metody statyczne są wydajniejsze niż ich “zwykłe” odpowiedniki (instance methods)? Odpowiedź brzmi tak, ponieważ:Wywołanie jakiejkolwiek niestatycznej metody na klasie powoduje przekazanie parametru “this” – a to wymaga dodatkowego czasu.Same wywołanie jest bardziej czasochłonne dla zwykłych metod. W klasach statycznych nie ma dziedziczenia i wirtualnych metod. W niestatycznych metodach, kompilator musi dokonać kilka  dodatkowych operacji. Każda metoda niestatyczna jest wywoływana za p...

Tagi: C#, static
Dziel się z innymi:
Piotr Zieliński » Statyczne metody – wydajność

Inne 1844 dni, 2 godziny, 58 minut temu pzielinski 237 rozwiń

O wzorcu projektowym singleton napisałem już kiedyś sporawy post. Klasy statyczne są prostym mechanizmem i mogą przypominać singleton. Tak jak w singleton, w klasach statycznych mamy do dyspozycji wyłącznie jedną instancję obiektu. Również nie ma możliwości ręcznego stworzenia instancji obiektów. Czym się zatem te twory różnią? 1. Singleton może implementować interfejs lub dziedziczyć po bazowej klasie. Jest to poważna zaleta w stosunku do klasy statycznej. Dzięki temu można np.:class XnaRenderer: IRend...

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Singleton a klasy statyczne

Inne 1846 dni, 10 godzin, 24 minuty temu pzielinski 234 rozwiń

Posted by mndevnotes W .NET 4 pojawiła się nowa klasa System.Lazy. Opakowuje ona obiekt danego typu, dzięki czemu jego inicjalizacja następuje dopiero w momencie pierwszego użycia.

Tagi: .NET 4.0, C#
Dziel się z innymi:
Leniwa inicjalizacja obiektów – klasa Lazy « Developer notes

Windows 1847 dni, 15 godzin, 4 minuty temu psz750 384 rozwiń

Rozważmy następujący. Co jest największym problemem tego kodu? Wszystkie przykłady wymyślam na bieżąco dlatego oprócz głównego problemu, który chce zaprezentować w poście, istnieje kilka pobocznych.

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Code review: lista danych

Inne 1848 dni, 8 godzin, 16 minut temu pzielinski 273 rozwiń

W tym wpisie opiszę od A do Z jak zrobić grę kółko krzyżyk w postaci graficznej aplikacji. Użytkownik będzie miał możliwość gry z komputerem na różnych poziomach „inteligencji”. Całość opakujemy w ładne GUI, użytkownik będzie mógł sterować grą za pomocą myszki. Taki program może być dobrym ćwiczeniem dla początkujących koderów – których serdecznie zapraszam do lektury. GUI Na początek wstawię screeny napisanego przeze mnie programu. Ma to wam przybliżyć efekt, do którego będziemy dąż...

Źródło: kodzimy.net
Dziel się z innymi:
Gra Kółko i Krzyżyk w C# | kodzimy.net

Inne 1851 dni, 17 godzin, 38 minut temu kodzimy-net 875 rozwiń

Jeśli chcemy zapisać plik tym czasowy Możemy dostać komunikat o błędzie "The File exists". Wbrew pozorom nie jest to spowodowane istnieniem pliku o tej samej nazwie...

Tagi: C#, net, Windows, Windows 7
Dziel się z innymi:
Błąd "The File Exists" podczas próby zapisania nowego pliku w katalogu tymczasowym ~ Programowanie i okolice

Windows 1851 dni, 17 godzin, 38 minut temu ozgrozo 45 rozwiń

Ostatnimi czasy rozpocząłem naukę programowania pod Windows Phone 7. Szybko okazało się, że przy pisaniu jednej z testowych aplikacji, warunkiem koniecznym jej dalszego rozwoju stał się dostęp do bazy danych. Programowanie na platformę mobilną wiążę się jednak z wieloma ograniczeniami w stosunku do programowania aplikacji desktopowych i oczywiście nie ominęły one również samej bazy danych. W przypadku Windows Phone, możemy korzystać zatem tylko z SQL Server CE i wykorzystywać w tym celu wyłącznie LINQ t...

Dziel się z innymi:
LINQ i DataContext - wycofywanie zmian w bazie - Alt Control Delete

Mobile development 1856 dni, 23 godziny, 37 minut temu Yuras 176 rozwiń

Programując, wcześniej czy później będziemy zmuszeni nauczyć się obsługi zdarzeń (events). Opisując program z laborek wyjaśnię jak korzystać ze zdarzeń według wzorca .NETu. Zdarzenia Początkujący programiści mogą nie wiedzieć czym są zdarzenia, ale zapewne ich używają. Bo czy nie zdarzyło się komuś wpisać fragmentu kodu do Form1Load(…) lub button1Click(…)? Podejrzewam, że takich osób jest niewiele. Tak jak w życiu codziennym, tak i w programowaniu są pewne zdarzenia na które musimy odpow...

Tagi: C#, events, zdarzenia
Źródło: kodzimy.net
Dziel się z innymi:
Zdarzenia w C# | kodzimy.net

Inne 1858 dni, 7 godzin, 3 minuty temu kodzimy-net 216 rozwiń

W kolejnym artykule chciałbym przedstawić podstawy pisania usług sieciowych w WCF (Windows Communication Foundation) oraz łączenia ich z aplikacją klienta. Wszystko omówię na przykładzie bardzo prostego przykładu. Stworzę prosty kalkulator, który będzie umożliwiał dodawanie, odejmowanie, mnożenie i dzielenie dwóch liczb. Zaczynamy!

Źródło: kodzimy.net
Dziel się z innymi:
Twoja pierwsza usługa WCF w C# | kodzimy.net

Inne 1865 dni, 13 godzin, 9 minut temu kodzimy-net 638 rozwiń

Słowo var zostało wprowadzone w .NET 3.5, prawdopodobnie ze względu na LINQ i anonimowe typy. Jedni programiści za wszelką cenę unikają tego słowa kluczowego a drudzy zapomnieli o typach i zawsze korzystają var bo w końcu to nowy feature… Nawet Resharper sugeruje aby zawsze używać var ponieważ skraca to składnie. Istnieje też spora trzecia grupa do której m.in. ja należę i postaram się pokazać kilka przykładów. Moja zasada jest prosta – używam var tylko jeśli w momencie deklaracji można wywnioskować typ...

Tagi: C#, var
Dziel się z innymi:
Piotr Zieliński » Kiedy używam var?

Inne 1865 dni, 13 godzin, 9 minut temu pzielinski 368 rozwiń

W kilku miejscach spotkałem się z błędną definicją CopyTo oraz Clone.  W przeciwieństwie do niektórych opinii, obydwie metody wykonują shallow copy. Jak wiemy w c# mamy reference oraz value types. Podczas płytkiego kopiowania, typy value po prostu klonowane są bit po bicie. W przypadku typów referencyjnych, wyłącznie adres jest kopiowany, nie wartość. Zatem po skopiowaniu typu referencyjnego będziemy mieli dwa wskaźniki, wskazujące na te same dane. Przykład:SampleClass[] array =new SampleClass[] {sampleC...

Tagi: array, C#
Dziel się z innymi:
Piotr Zieliński » Array.CopyTo vs. Array.Clone

Inne 1867 dni, 5 godzin, 57 minut temu pzielinski 155 rozwiń

Zgodnie z obietnicą dziś napiszę trochę więcej o rzutowaniu, wydajności oraz dobrych praktykach. Muszę przyznać, że w jednej kwestii miałem nieprawdziwe informacje (znalezione gdzieś na forum) których byłem pewien ponieważ napisałem prosty program sprawdzający wydajność – jak na końcu pokażę popełniłem błąd podczas mierzenia wydajności spowodowany kompilacją JIT. Na początku trochę przypomnienia: 1. Rzutowanie prefiksowe – najpopularniejszy typ znany np. z CPP. int value = (int)boxedValue; Można wyk...

Tagi: C#, rzutowanie
Dziel się z innymi:
Piotr Zieliński » Wydajność: Porównanie operatorów as, is oraz rzutowania bezpośredniego (prefiksowego)

Inne 1872 dni, 18 godzin, 12 minut temu pzielinski 228 rozwiń

Bardzo często się zdarza, że używana przez nas wartość nie jest dogodnego dla nas typu. Co zrobić gdy chcemy dodać do siebie dwie liczby, a jedyne co mamy to ciągi znaków? W tym artykule zajmiemy się właśnie tym zagadnieniem. Istnieją cztery zasadnicze rodzaje konwersji: -konwersja niejawna(implicit) -konwersja jawna(explicit, casts) -konwersje użytkownika -konwersja poprzez klasę pomocniczą Konwersja niejawna Dla tego przypadku konwersja odbywa się bez wiedzy użytkownika. Używan...

Źródło: kodzimy.net
Dziel się z innymi:
Konwersja typu w C# | kodzimy.net

Inne 1872 dni, 18 godzin, 12 minut temu kodzimy-net 172 rozwiń

Co powiedzie na taki fragment kodu?FileInfo fileInfo; if (sender is FileInfo) fileInfo = sender as FileInfo; Konstrukcja jest dość popularna i: - oczywiście skompiluje się, - jest bezpieczna na wartość NULL (tzn. nie wyrzuci wyjątku), - jeśli sender jest innego typu niż FileInfo, kod nie wyrzuci wyjątku. Co jest w końcu nie tak? Chodzi tutaj o good practice i nie wprowadzanie czytelnika kodu w błąd. Operator is sprawdza czy obiekt jest danego typu. Zatem w instrukcji IF wiemy już,  że sender ...

Tagi: C#, review
Dziel się z innymi:
Piotr Zieliński » Code review: rzutowanie

Inne 1873 dni, 4 godziny, 44 minuty temu pzielinski 215 rozwiń

By móc cokolwiek napisać w dowolnym języku programowania, musimy się zapoznać z typami danych na których dany język operuje. W tej części kursu postaram się przybliżyć najważniejsze z nich oraz wyjaśnić terminy z nimi związane.

Źródło: kodzimy.net
Dziel się z innymi:
Typy w C# | kodzimy.net

Inne 1878 dni, 17 godzin, 24 minuty temu kodzimy-net 225 rozwiń

Słowo kluczowe yield jest dość często wykorzystywane w c#. W przeciwieństwie do poprzednich konstrukcji, które opisywałem (np. volatile), nie trudno znaleźć zastosowanie praktycznie w projekcie. Zacznijmy  może od razu od przykładu:foreach (int value in GetNumbers(5,7)) { MessageBox.Show(value.ToString()); } // ------------------private IEnumerable

Tagi: C#, yield, yield break
Dziel się z innymi:
Piotr Zieliński » Yield oraz yield-break

Inne 1885 dni, 5 godzin, 8 minut temu pzielinski 294 rozwiń

Można by rzec ,,Im głębiej w las tym ciemniej”. Po zapoznaniu się ze wcześniejszymi artykułami na temat Klas w C# i Dziedziczenia przyszedł czas na klasę object, klasy abstrakcyjne, instancje i struktury. Może nie są to bardzo trudne zagadnienia ale jeżeli poznasz je i zrozumiesz będziesz mógł tworzyć programy wydajniejsze i bardziej skąplikowane. Zapraszam do lektury.

Źródło: kodzimy.net
Dziel się z innymi:
Klasa object, klasy abstrakcyjne, interfejsy i struktury w C#

Inne 1885 dni, 5 godzin, 8 minut temu kodzimy-net 297 rozwiń

Witam Ostatnio napotkałem na dość ciekawy wyjątek podczas wykonywania NHibernatowego inserta. W bazie danych mam prostą tabelę Do takiej tabeli został stworzony model namespace Model { public class Appointment { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual DateTime StartDate { get; set; } public virtual TimeSpan Duration { get; set; } } } oraz mapping namespace Model.Mappings { public class AppointmentM...

.NET Blog: FluentNhibernate- mapowanie kolumn typu time

Windows 1886 dni, 11 godzin, 15 minut temu nocturn 130 rozwiń

Rozważmy, dwie zupełnie bezsensowne klasy:class TextInfo { publicstring Text { get; set; } } class NumberInfo { publicint Number { get; set; } } Następnie gdzieś w kodzie próbujemy dokonać konwersji:NumberInfo numberInfo =new NumberInfo {Number =43}; TextInfo textInfo1 = numberInfo; // konwersja niejawnaTextInfo textInfo2 = (TextInfo)numberInfo; // konwersja jawna Czy, którakolwiek przedstawiona konwersja zakończy się sukcesem?Oczywiście, że nie – skąd .NET ma wiedzieć jak należy zamienić je...

Tagi: C#, operatory
Dziel się z innymi:
Piotr Zieliński » Operatory implicit oraz explicit

Inne 1886 dni, 11 godzin, 15 minut temu pzielinski 131 rozwiń

W ostatnich kilku postach przedstawiłem “egzotyczne” słowa kluczowe w c#. Wiele z nich, myślę, nie było znanych nawet bardziej zaawansowanym programistom. Z pewnością nie są one niezbędne do pisania aplikacji. Często nawet nie jest wskazane aby z nich korzystać, chyba, że naprawdę dokładnie przeanalizowaliśmy sytuację. Słowo zaprezentowane w dzisiejszym poście również zalicza się do tego zbioru.  Myślę, że volatile może być znane programistom C++ ale w świecie c# jest dużo mniej popularne. Jeśli piszecie...

Tagi: C#, volatile, wielo
Dziel się z innymi:
Piotr Zieliński » C#: słowo kluczowe volatile

Inne 1888 dni, 22 godziny, 7 minut temu pzielinski 305 rozwiń

1 2... 37 38 39 40 41 42... 59 60
Szkolenia SecurITum

maj

23.
CodeEurope
Wrocław
25.
CodeEurope
Warszawa
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 385,97)

8

Damian (9 041,08)

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

15

jedmac (3 318,39)

16

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

17

CaMeL (2 954,87)

18

spetz (2 923,27)

19

mnikolajuk (2 596,93)

20

lkurzyniec (2 592,74)