• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    VITI
    VITI --- ---
    VLAC: tezko rict co hledas. Youtube si prozkoumal? tam jsou sikovni vysvetlovaci.
    VLAC
    VLAC --- ---
    TOOMIX: Díky. Levné to není, chci to čistě pro sebe, ale asi lepší, než tím zabít půl roku a nedostat se na takovou úroveň vědomostí :)
    TOOMIX
    TOOMIX --- ---
    VLAC: záleží kolik do toho chceš vrazit, Gopas dělá fajn školení

    Kurzy programování jazyk C# | Počítačová škola Gopas, a.s.
    https://www.gopas.cz/Kurzy-programovani-jazyk-C.aspx
    VLAC
    VLAC --- ---
    Zdravím, neměl by někdo prosím tip na kurz C# v Praze? Učím se pomalu a dospěl jsem k názoru, že živé vysvětlení by mi dost pomohlo
    INTER_MAN
    INTER_MAN --- ---
    Ještě k paralelnímu programování bych dodal
    PostSharp Threading – PostSharp
    https://www.postsharp.net/threading

    Dá se pomocí toho označit jakým způsobem se má k paralelnímu volání metod v každém datovém typu přistupovat a není pak třeba řešit konkrétní implementaci. Taky to jako vedlejší efekt pomáhá lépe strukturovat kód.
    CERMI_FOX
    CERMI_FOX --- ---
    SAJAGI: použivá se LifestyleScoped ; windsor si tam přidává nějaký middleware, který zajišťuje vytvoření & rušení toho scope tak, aby to odpovídalo cca per webrequest style. Nebo si to napíšeš sám, což jsem kdysi dělal, když ještě ta podpora nebyla out of the box
    SAJAGI
    SAJAGI --- ---
    Věděl by někdo, jakým způsobem se u Castle Windsor přiřadí per-webrequest lifestyle pro ASP.NET Core MVC? (to Core je důležitý)
    TEAPACK
    TEAPACK --- ---
    MORIARTY: ber to tak, že počáteční prvek má index 0, a pak můžeš jít buď na následující (1), nebo předchozí (-1) ...a pak ti sedí i případné přetečení pokud bys to měl jako kruhový buffer.
    TOOMIX
    TOOMIX --- ---
    ARANIUS: nene, koukni na ten muj obrazek. Jsem to hned zkousel a ^1 vrati prvni od konce, takze posledni, je to jako v Pythonu, kdy se posledni prvek vrati pomoci indexu -1. Proste misto minusu je ^ a to je cely
    ARANIUS
    ARANIUS --- ---
    MORIARTY: Ak som ten článok cital korektne tak posledný prvok je ^0, ^1 by mal označovať predposledný prvok ;)
    MORIARTY
    MORIARTY --- ---
    Vtip je v tom, že poslední prvek není ^0, ale ^1? To je trochu nekonzistentní, když pak u pětiprvkového pole je poslední prvek pole[4], ale první je pole[^5] :)
    VITI
    VITI --- ---
    TOOMIX: CERMI_FOX: no ok ... osobne tyhle magicky zkratko zapisy moc nevyhledavam. No uvidime :-)
    TOOMIX
    TOOMIX --- ---
    VITI: usetris psani kodu. Mas treba dataset, v nem tabulku a chces posledni radek.
    Misto
    var r = dataset.mojetabulka.Rows[dataset.mojetabulka.Rows.Count - 1];

    Nove muzes pouzit
    var r = dataset.mojetabuka.Rows[^1]
    CERMI_FOX
    CERMI_FOX --- ---
    VITI: syntactic sugar - napsání více logiky za použití menšího množství kódu :)
    VITI
    VITI --- ---
    TOOMIX: BTW k cemu je to dobre?
    TOOMIX
    TOOMIX --- ---
    TEAPACK: no mínus ne, ale System.Index má i přetížený konstruktor, kde si boolem dáš, jestli je to od konce nebo od začátku
    
    //stejné jako ^1
    var index = new System.Index(1, true)

    But you can also create an Index with a new ^ operator, meaning "from end". So ^1 is one from the end
    TEAPACK
    TEAPACK --- ---
    TOOMIX: byl bych raději, kdyby tam bylo mínus, podobně jako u pythonu, protože takhle nemůžeš jednoduše skripty, které by používaly oba způsoby najednou... :-/
    TOOMIX
    TOOMIX --- ---
    Take C# 8.0 for a spin | .NET Blog
    https://blogs.msdn.microsoft.com/dotnet/2018/12/05/take-c-8-0-for-a-spin/

    Do more with patterns in C# 8.0 | .NET Blog
    https://blogs.msdn.microsoft.com/dotnet/2019/01/24/do-more-with-patterns-in-c-8-0/

    Už lze indexovat od konce pole/listu, aniž by se muselo použít aaa.Count-1 pro návrat posledního prvku. Dá se tam ^1 a je to

    RUTHAN
    RUTHAN --- ---
    Dik moc podivam se na to.
    SAJAGI
    SAJAGI --- ---
    RUTHAN: Pokud jsi ve stádiu, že tápeš, proč bys měl synchronizační mechanismy používat, tak doporučuju třeba https://msdn.microsoft.com/en-us/magazine/jj863136.aspx (včetně části 2). Nepropadni ale pak zoufalství - pokud neprogramuješ pro ARM, tak to není tak zlý :) Obecně ale nejjednodušší je nemít žádný sdílený stav mezi více vlákny. Pokud potřebuješ něco sdílet, tak můžeš používat třídy k tomu určené (třeba Interlocked, ConcurrentDictionary). No a pokud ani tohle nepomůže, tak je jsou tu synchronizační primitiva (lock, ReadWriteObjectLock(Slim), Monitor, apod). Reálně ti asi bude stačit jen ten lock.
    SUK
    SUK --- ---
    RUTHAN: Hele, ono to "neni slozity". Vzasade na to koukej tak, ze ti jedno muze menit hodnoty pod rukama (tzv. race condition), cemuz muze zabranit lock alias mutex, v C# na to je Monitor. Jen davej pozor na poradi a konkretni locky, aby nenastal deadlock. Toliko asi k paralelnimu programovani - dulezite keywordy k googleni jsou tucne. Mnoho uloh se da vyresit bez jakyhokoliv lockovani, mezivlaknove komunikace a tak. Jinak, ohledne toho Invoke, tak to spociva v tom, ze ty "reknes, co se ma udelat" tomu prvku, ktery si to vykona az bude cas ve svem vlakne. Tady na to hledej asi C# invoke delegate.
    Kliknutím sem můžete změnit nastavení reklam