dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem C#

Kilka postów wcześniej pisałem o różnicach między const a read-only. Dzisiaj  chciałbym pokazać scenariusz, który pokazuje kiedy NIE używać słowa const. Const jest doskonałym rozwiązaniem dla liczb, które są po prostu ZAWSZE stałe. Przykład? Liczba PI ma jedną wartość i oczywiście nigdy się nie zmieni. Istnieją jednak przypadki gdzie liczby w kodzie są zastępowane stałymi co nie zawsze jest dobrym wzorcem. Rozważmy, że mamy klasę przechowującą pewne parametry algorytmu:namespace ClassLibrary1 { publ...

Tagi: C#, readonly, stałe
Dziel się z innymi:
Piotr Zieliński » Kiedy stałe (const) są złą praktyką?

Sztuka programowania 2376 dni, 10 godzin, 39 minut temu pzielinski 152 rozwiń

W jednym z ostatnich projektów klient zażyczył sobie sprawdzenie polubienia strony z poziomu aplikacji bez autoryzacji użytkownika. Poniżej rozwiązanie tego problemu z użyciem biblioteki Facebook C# SDK.

Tagi: .Net, API, C#, Facebook, JSON
Źródło: jakubflorczyk.pl
Dziel się z innymi:
Jakub Florczyk » Aplikacje Facebook – sprawdzanie “like” dla strony

Web 2378 dni, 1 godzinę, 29 minut temu http://jakub-florczyk.myope... 86 rozwiń

Dziś trochę o formatowaniu tekstu. Można je wykonać na wiele sposób. Osoby nie znające powyższych interfejsów zwykle tworzą własne metody zwracające wynik w odpowiednim formacie. Załóżmy, że mamy następującą klasę:class PhoneNumber { privatereadonlystring _extension; privatereadonlystring _phoneNumber; public PhoneNumber(string extension,string phoneNumber) { _extension = extension; _phoneNumber = phoneNumber; } } Na przykładzie powyższej klasy będę starał się po kolei pr...

Piotr Zieliński » Formatowanie tekstu oraz atrybuty IFormatProvider, IFormattable, and ICustomFormatter

Sztuka programowania 2378 dni, 1 godzinę, 29 minut temu pzielinski 102 rozwiń

W C# istnieje wiele typów tablic. W poście chciałbym skupić się na ich wydajności. Rozważę następujące przypadki: - tablica wielowymiarowa, - tablica tablic tzw. jagged. - tablica unsafe. Tablice wielowymiarowe w c# są najwolniejsze ponieważ CLR nie wykonuje wszystkich optymalizacji. Zacznijmy jednak od testu:internalclass Program { privatestaticvoid DoSomething(int arg) { } privatestaticvoid MultiDimensionalArrayTest(int xCount, int yCount) { int[,] array =newint[xCount, ...

Dziel się z innymi:
Piotr Zieliński » Tablice danych: wydajność

Sztuka programowania 2381 dni, 21 godzin, 34 minuty temu pzielinski 151 rozwiń

Jedną z podstawowych kwestii przy budowie interfejsu użytkownika jest walidacja wprowadzanych danych. WPF w tym obszarze oferuje kilka mechanizmów. Dzisiaj zajmę się omówieniem trzech rozwiązań: walidacja poprzez implementację interfejsu IDataErrorInfo (DataErrorValidationRule), walidacja za pomocą wyjątków (ExceptionValidationRule) oraz walidacja przy wykorzystaniu własnych obiektów reguł (ValidationRule).

Dziel się z innymi:
WPF – walidacja danych « Developer notes

Inne 2381 dni, 21 godzin, 34 minuty temu psz750 229 rozwiń

Manipulując stanem encji, należy pamiętać o dwóch zasadach. Dotyczą one zapisu zmian do bazy danych po zakończeniu pracy z obiektami i ustawianiu im stanów.

Dziel się z innymi:
Programowanie w .NET: O czym pamiętać przy zmianie stanu encji w EF

Inne 2383 dni, 21 godzin, 38 minut temu psz750 157 rozwiń

Encja pobrana z bazy za pomocą EntityFramework może mieć jeden z następujących stanów: Added - encja jest śledzona przez kontekst, ale nie istnieje w bazie danych Unchanged - encja jest śledzona przez kontekst oraz istnieje w bazie danych. Wartości pól są takie same w bazie jak i obiekcie (nie dokonano żadnych zmian).Modified - encja jest śledzona przez kontekst, istnieje w bazie danych. Dokonano zmian w jej polach Deleted - encja jest śledzona przez kontekst i istnieje w bazie danych. Została jednak ozn...

Dziel się z innymi:
Programowanie w .NET: Entity Framework - Graph Object State

Inne 2383 dni, 21 godzin, 38 minut temu psz750 92 rozwiń

Czasami metody mają zbyt dużo parametrów przez co wywołanie ich jest niewygodne i może zajmować nawet dwie linie. Oczywiście pierwsza rzecz, którą powinniśmy zrobić jest sprawdzenie czy metoda czasami nie wykonuje zbyt wielu operacji tzn. przestrzega zasadę Single Responsibility.  Jeśli mamy pewność, że metoda przestrzega wszelkie zasady i jest dobrze zaprojektowana wtedy trzeba pomyśleć jak zmniejszyć liczbę parametrów. W poście przedstawię kilka prób uzyskania takiego efektu. Logiczne wydaje się, utwo...

Tagi: C#, parametry
Dziel się z innymi:
Piotr Zieliński » Metoda z wieloma parametrami

Sztuka programowania 2383 dni, 21 godzin, 38 minut temu pzielinski 139 rozwiń

Dziś prosta zasada przekazywania parametrów ale jednak często łamana. Kod:privatestaticvoid Display(string[] strings) { foreach (string text in strings) { Console.WriteLine(text); } } Powyższa metoda ma za zadanie wyświetlenie wyłącznie elementów. Parametr wejściowy (tablica string’ów) jest zbyt specyficzny i nie pozwala na przekazanie wszystkich zbiorów danych. Na przykład poniższy kod nie skompiluje się:List

Tagi: C#, parametry
Dziel się z innymi:
Piotr Zieliński » Code Review: przekazywanie parametrów

Sztuka programowania 2386 dni, 18 godzin, 27 minut temu pzielinski 193 rozwiń

Przyjrzyjmy się następującemu fragmentowi kodu:publicclass SampleClass { privateint _value =10; } W rzeczywistości zostanie wygenerowany konstruktor, ustawiający pole value na 10. Kod IL:.method public hidebysig specialname rtspecialname instance void .ctor() cil managed { .maxstack 8 L0000: ldarg.0 L0001: ldc.i4.s 10 L0003: stfld int32 SampleClass::value L0008: ldarg.0 L0009: call instance void [mscorlib]System.Object::.ctor() L000e: nop L_000f: ret } Na...

Tagi: C#, konstruktor, pola
Dziel się z innymi:
Piotr Zieliński » Inicjalizacja pól a konstruktory

Sztuka programowania 2390 dni, 1 godzinę, 13 minut temu pzielinski 63 rozwiń

W dzisiejszym wpisie chciałbym przyjrzeć się trochę bardziej tablicom i interfejsom jakie implementują. Zaglądając do dokumentacji dowiemy się, że Array implementuje:[SerializableAttribute] [ComVisibleAttribute(true)] publicabstractclass Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable IEnumerable nie powinno wydawać się dziwne ponieważ oczekujemy od tablic możliwości dostępu do elementów poprzez foreach:int[] numbers =new[] { 5, 2, 52, 5 }; foreach...

Tagi: C#, tablice
Dziel się z innymi:
Piotr Zieliński » Tablice – rzutowanie

Inne 2393 dni, 1 godzinę, 41 minut temu pzielinski 106 rozwiń

Dziś mały eksperyment. Chciałbym pokazać jaki jest faktycznie spadek wydajności jeśli zachodzi potrzeba boxing’u i unboxing’u. Wiele o tym ostatnio pisałem ale nie pokazałem najważniejszego – liczb opisujących wydajność.  Na początek porównanie boxing z unboxing:privatestaticvoid TestBoxingAndUnboxing() { object boxedValue =null; // boxing Stopwatch stopwatch = Stopwatch.StartNew(); for (int i =0; i < iterations;="" i++)="" {="" int="" unboxed="(int)" boxedvalue;="" }="" stopwatch.stop();="" ...

Tagi: boxing, C#, unboxing
Dziel się z innymi:
Piotr Zieliński » Boxing, unboxing–test

Sztuka programowania 2396 dni, 12 godzin, 5 minut temu pzielinski 90 rozwiń

SQL Serwer umożliwia zdefiniowanie procedury składowanej, której dowolny parametr (lub parametry) może służyć do zwracania jakichś informacji w ramach tej procedury uzyskanych. Oprócz tego procedura może zwracać także jakiś zestaw wyników w postaci tabelarycznej (wystarczy w jej treści wykonać select), co więcej takich zestawów może być więcej niż jeden. Połączenie tych dwóch cech pozwala tworzyć rozbudowane procedury, które mogą zwracać wiele zestawów wyników i dodatkowo jakieś informacje w parametrach ...

Me z .NET tete-a-tete » Pan Hilary rwie włos z głowy – gdzie parametr jest wyjściowy!

Bazy danych i XML 2398 dni, 15 godzin, 7 minut temu PaSkol 96 rozwiń

Jeśli ktoś (tak jak ja) pierwsze kroki z XNA stawiał w Windows Phone, to możliwe, na w swoich projektach założył dość sztywne reguły, np: rozdzielczość urządzenia to 800×480 pikseli. Tak właśnie zrobiłem ja. Na jakiś czas (około 1 rok) było to ok, bo wszystkie telefony z Windows Phone pracowały właśnie w tej rozdzielczości. Ale czasy się zmieniły...

XNA – skalowanie i centrowanie | Wojciech Poniatowski [PL]

Inne 2398 dni, 22 godziny, 46 minut temu poniat 50 rozwiń

Łapanie wyjątków w metodzie asynchronicznej nie jest niczym skomplikowanym. Należy tylko pamiętać o tym, iż mamy do czynienia z różnymi możliwymi scenariuszami wyjątków. Metoda oznaczona słowem kluczowym async zawiera przeważnie jedną lub więcej wywołań metod ze słowem kluczowym await. Await stoi przed metodą zwracającą typ Task. Pierwsza zasada to ta, iż await nie może się pojawić się w bloku catch lub finally.

Tagi: .Net, async, await, C#
Dziel się z innymi:
Programowanie w .NET: async, await - przechwytywanie wyjątków

Inne 2399 dni, 16 godzin, 23 minuty temu psz750 139 rozwiń

Zaczniemy znów od kawałka kodu. Przeanalizujmy w jaki sposób wykonywana jest powyższa metod...

Tagi: .Net, async, await, C#
Dziel się z innymi:
Programowanie w .NET: async, await - przetwarzanie metody asynchronicznej

Inne 2399 dni, 13 godzin, 27 minut temu psz750 415 rozwiń

Nietypowo, na początek trochę kodu. Co czyni powyższą metodę asynchroniczną? Sygnatura metody zawiera słowo kluczowe async, nazwa metody zawiera przyrostek Async, typ zwracany to: Task(TResult), Task lub void, metoda zawiera przynajmniej jedno słowo kluczowe await.

Tagi: .Net, async, await, C#
Dziel się z innymi:
Programowanie w .NET: await, async - konwencje i fakty

Inne 2401 dni, 18 godzin, 6 minut temu psz750 388 rozwiń

Zamrażanie interfejsu użytkownika podczas wykonywania skomplikowanej czynności nie jest dobrym pomysłem. Aplikacja, która "zamiera" nie zachęca do dalszego wykorzystywania przez użytkownika. Programowanie asynchroniczne z drugiej strony wiąże się z większym nakładem pracy oraz bardziej skomplikowanym kodem wynikowym. Na pomoc przychodzi .NET 4.5 wraz z nowymi słowami kluczowymi: async, await. Jak je stosować i w jaki sposób pomagają nam tworzyć aplikacje asynchroniczne zobaczymy w poniższym przykładzie...

Tagi: .Net, async, await, C#
Dziel się z innymi:
Programowanie w .NET: Asynch await - asynchroniczność w .NET 4.5

Inne 2403 dni, 18 godzin, 17 minut temu psz750 181 rozwiń

Odwołam się do wpisu Tworzenie własnej ConfigurationSection. W tamtym podejściu tylko czytałem z configuracji. Teraz chcę pokazać że do konfiguracji można też zapisywać z poziomu kodu.

Tagi: C#, Configuration
Dziel się z innymi:
ConfigurationSection nie tylko read-only | Show me the code

Architektura 2406 dni, 15 godzin, 26 minut temu http://krzysztofmorcinek.wo... 59 rozwiń

Biblioteka .NET dostarcza wiele ułatwień w dziedzinie pracy nad zbiorami. Do pracy ze zbiorami możemy podejść na dwa sposoby: Metody LINQ lub Kolekcja HashSet...

Tagi: .Net, C#, kolekcje
Dziel się z innymi:
Programowanie w .NET: Operacje na zbiorach

Inne 2408 dni, 8 godzin, 3 minuty temu psz750 155 rozwiń

1 2... 38 39 40 41 42 43... 67 68
Dotnetos Conference
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

Paweł Łukasik (32 876,58)

2

macko (32 816,53)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,88)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 434,77)

8

Damian (9 775,28)

9

danielplawgo (8 283,27)

10

arek (6 822,96)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

dpawlukiewicz (3 979,62)

15

jj09 (3 863,06)

16

AdrianBystrek (3 597,29)

17

spetz (3 448,35)

18

jedmac (3 318,39)

19

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

20

KonradKokosa (3 105,41)