Ar galima naudoti async/await užrake viduje? Kodėl?
C#
Kodėl async void yra bloga praktika?
Kaip vykdymo aplinka supranta, kad asinchroninė operacija baigėsi ir reikia tęsti darbą?
Ką bus išvesti konsolėje? ```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(); } } ```
Kas yra struktūra? Ar tai vertės tipas ar nuorodos tipas? Kur išskiriama atmintis? Kokios yra efektyvaus struktūrų naudojimo ribos?
Kas yra indeksai duomenų bazėje? Indeksų tipai (B-Tree, Hash, Full-text). Klastrinis vs neklastrinis indeksas. Apimančiosios eilutės.
Kokius kaupinius žinai be pagrindinio (SOH)? Papasakok apie Large Object Heap ir Pinned Object Heap.
Užduotis su async/await: kaip veikia async/await? Kur jis vystosi? Kuo skiriasi Task ir ValueTask?
Kas yra nuoseklusis maišavimas (consistent hashing)? Virtualūs shard'ai/bucket'ai?
Užduotis su virtualiais metodais: kas bus išvedama? Kurio metodo turi daugiau tikslių ir kodėl?
Kas yra GC šaknys? Kokios jos yra?
Kas yra ConfigureAwait(false)? Kam jis naudojamas? Kas yra sinchronizacijos kontekstas?
Kokia yra GC kartų (0, 1, 2) koncepcijos esmė? Ką optimizuojame?
Papaskink apie GC darbo režimus: serverio ir darbalaukio. Kada naudoti kurį?
Papaskinkite apie ref, in, out parametrų modifikatorius ir jų skirtumus. Kas yra readonly ref ir ref readonly?
Jums buvo paskirta kolegos kodo peržiūros užduotis Kokias problemas matote kode? ```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); } } } } ```
SELECT * FROM t_sensor_data;
Užduotis su eilutėmis: kas bus išvedama? Kaip perrašytas == operatorius eilutėms? Kas yra eilutės internavimo baseinas?
Paaiškinkite, kaip atmintis paskirstoma steke ir heap'e. Ar visada reikšmės tipai yra išdėstyti steke?
Užduotis su LINQ: kas bus išvedama? Koks yra kintamojo query tipas? Kuo skiriasi IEnumerable ir IQueryable?