Je možné použiť async/await vnútri zámku? Prečo?
C#
Prečo je async void zlá prax?
Ako prostredie vykonávania rozumie, že asynchrónna operácia sa ukončila a je potrebné pokračovať v práci?
Čo sa zobrazí v konzole? ```csharp public class Program { static void Main() { var myClassObj = new MyClass(); var myStructObj = new MyStruct(); MethodA(myClassObj.Num); // MethodB(myStructObj); MethodC(myClassObj); MethodD(myClassObj); Console.WriteLine(myClassObj.Num); // ? Console.WriteLine(myStructObj.Num); // ? } private static void MethodA(int num) { num = num + 1; } private static void MethodB(MyStruct myStruct) { myStruct.Num += 1; } private static void MethodC(MyClass myClass) { myClass.Num += 1; } private static void MethodD(MyClass myClass) { myClass = new MyClass(); } } ```
Čo je štruktúra? Je to typ hodnoty alebo referenčný typ? Kde sa prideľuje pamäť? Aké sú hranice efektívneho využívania štruktúr?
Čo sú indexy v databáze? Typy indexov (B-strom, Hash, Full-text). Klastrovaný vs neklastrovaný index. Pokrývajúce indexy.
Aké haldy poznáš okrem hlavného (SOH)? Porozprávaj mi o Large Object Heap a Pinned Object Heap.
Čo je konzistentné hashovanie? Virtuálne shardy/koše?
Úloha s async/await: ako funguje async/await? V čo sa rozvíja? Aký je rozdiel medzi Task a ValueTask?
Zadanie s virtuálnymi metódami: čo bude zobrazené? Pre ktorú metódu je viac tikov a prečo?
Čo sú GC korene? Aké existujú?
V čem je bistvo konceptu generacij GC (0, 1, 2)? Čo optimalizujeme?
Povedz mi o režimoch práce GC: server a desktop. Kedy použiť ktorý?
Čo je ConfigureAwait(false)? Na čo sa používa? Čo je to synchronizačný kontext?
Povedz mi o modifikatoroch parametrov ref, in, out in njihovih razlikah. Kaj je readonly ref in ref readonly?
SELECT * FROM t_sensor_data;
Bola vám pridelená úloha na revíziu kódu od kolegu Aké problémy vidíte v kóde? ```csharp namespace SomeProject.Data { public class UserRepository { public Task SaveUser(User user, Dictionary<int,string> shards) { var shardIdx = user.Id % 3; var shardAddress = shards[shardIdx]; using(var shardService = new ShardService(shardAddress)) { return shardService.SaveUserAsync(user); } } } } ```
Otázka so stringami: čo bude zobrazené? Ako je prepísaný operátor == pre reťazce? Čo je pool internovania reťazcov?
Úloha s LINQ: čo bude zobrazené? Aký je typ premennej query? V čom sa líšia IEnumerable a IQueryable?
Vysvetlite, ako sa prideľuje pamäť na zásobníku a na halde. Sú hodnotové typy vždy umiestnené na zásobníku?