Μπορείτε να χρησιμοποιήσετε async/await μέσα σε ένα lock; Γιατί;
C#
Γιατί το async void είναι κακή πρακτική;
Πώς καταλαβαίνει το περιβάλλον εκτέλεσης ότι μια ασύγχρονη λειτουργία έχει ολοκληρωθεί και πρέπει να συνεχίσει την εργασία;
Τι θα εμφανιστεί στην κονσόλα; ```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(); } } ```
Τι είναι η δομή; Είναι τύπος τιμής ή αναφοράς; Πού εκχωρείται η μνήμη; Ποια είναι τα όρια της αποτελεσματικής χρήσης των δομών;
Τι είναι οι δείκτες σε μια βάση δεδομένων; Τύποι δεικτών (B-tree, Hash, Full-text). Κλιμακωτός vs μη κλιμακωτός δείκτης. Καλυπτόμενοι δείκτες.
Ποιες στοίβες γνωρίζεις εκτός από την κύρια (SOH); Μίλησέ μου για το Large Object Heap και το Pinned Object Heap.
Τι είναι η συνεπής κατακερματισμός; Εικονικά shards/κάδοι;
Εργασία με async/await: πώς λειτουργεί το async/await; Σε τι εξελίσσεται; Ποια είναι η διαφορά μεταξύ Task και ValueTask;
Άσκηση με εικονικές μεθόδους: τι θα εμφανιστεί; Για ποια μέθοδο υπάρχουν περισσότερα ticks και γιατί;
Μίλησέ μου για τις λειτουργίες του GC: διακομιστής και επιτραπέζιος. Πότε να χρησιμοποιήσετε ποιο;
Ποια είναι η ουσία της έννοιας των γενεών GC (0, 1, 2); Τι βελτιστοποιούμε;
Τι είναι οι ρίζες GC; Ποια υπάρχουν;
Τι είναι το ConfigureAwait(false); Πού χρησιμοποιείται; Τι είναι το πλαίσιο συγχρονισμού;
Μίλησέ μου για τους τροποποιητές παραμέτρων ref, in, out και τις διαφορές τους. Τι είναι readonly ref και ref readonly;
SELECT * FROM t_sensor_data;
Σας έχει ανατεθεί μια εργασία ανασκόπησης κώδικα από έναν συνάδελφο Ποια προβλήματα βλέπετε στον κώδικα; ```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); } } } } ```
Ερώτηση με συμβολοσειρές: τι θα εμφανιστεί; Πώς υπερφορτώνεται ο τελεστής == για τις συμβολοσειρές; Τι είναι η δεξαμενή εσωτερικής αποθήκευσης συμβολοσειρών;
Εξήγησε πώς διατίθεται η μνήμη στη στοίβα και στη σωρό. Τα τύποι τιμών πάντα τοποθετούνται στη στοίβα;
Άσκηση με LINQ: τι θα εμφανιστεί; Ποιος είναι ο τύπος της μεταβλητής query; Ποια είναι η διαφορά μεταξύ IEnumerable και IQueryable;