Πίνακας περιεχομένων[Κρύβω][Προβολή]
- 1. Τι ακριβώς είναι το C#;
- 2. Τι διακρίνει το C# από το C;
- 3. Τι ακριβώς είναι μια τάξη;
- 4. Τι ακριβώς είναι ένα αντικείμενο;
- 5. Ποια είναι η διάκριση μεταξύ των όρων static, public και void;
- 6. Ορίστε τους κατασκευαστές.
- 7. Τι είναι το C# στη συλλογή σκουπιδιών;
- 8. Τι ακριβώς σημαίνει δομή στη C#;
- 9. Πώς μεταγλωττίζεται ο κώδικας C#;
- 10. Περιγράψτε ξεκάθαρα τις διαφορετικές κλάσεις C#.
- 11. Τι ακριβώς είναι οι Jagged Arrays;
- 12. Ποια είναι η διάκριση μεταξύ των παραμέτρων out και ref;
- 13. Στην C#, τι είναι ο καταστροφέας;
- 14. Στην C#, τι είναι ο δείκτης;
- 15. Ποια είναι η διαφορά μεταξύ διαχειριζόμενου και μη διαχειριζόμενου κώδικα;
- 16. Περιγράψτε τη σειριοποίηση.
- 17. Στη C#, πώς διαφέρουν τα πεδία και οι ιδιότητες μεταξύ τους;
- 18. Πώς μπορείτε να περιγράψετε τη χρήση εντολών σε C# λεπτομερώς;
- 19. Πώς θα υλοποιούσατε πολλές διεπαφές με το ίδιο όνομα μεθόδου στην ίδια κλάση;
- 20. Στη C#, ποια είναι η διαφορά μεταξύ Task και Thread;
- 21. Ποια είναι η συνάρτηση οριστικοποίησης στη C#;
- 22. Κάντε μια διάκριση μεταξύ οριστικοποίησης μπλοκ και οριστικοποίησης.
- 23. Περιγράψτε τη μέθοδο διάθεσης C# λεπτομερώς.
- 24. Τι είναι η Υπερφόρτωση Μεθόδου C#; Διευκρινίζω.
- 25. Ποια είναι η διάκριση μεταξύ μόνο για ανάγνωση και σταθερών;
- 26. Τι είναι ο Έλεγχος χρήστη και ο Προσαρμοσμένος Έλεγχος;
- 27. Στη C#, τι είναι ένας εκπρόσωπος πολλαπλής διανομής;
- 28. Τι ακριβώς είναι η συγκέντρωση αντικειμένων στην C#;
- 29. Τι ακριβώς είναι τα γενικά στο C#.NET;
- 30. Είναι εφικτή η παράκαμψη μιας ιδιωτικής εικονικής μεθόδου;
- 31. Διακρίνετε μεταξύ υπερφόρτωσης μεθόδου και παράκαμψης μεθόδου σε C#;
- 32. Στη C#, ποια είναι η διαφορά μεταξύ String και StringBuilder;
- 33. Τι ακριβώς είναι οι εκπρόσωποι;
- 34. Πότε πρέπει να χρησιμοποιείτε το multithreading στην C# και πότε πρέπει να το αποφεύγετε;
- 35. Στη C#, τι είναι ένας εκπρόσωπος πολλαπλής διανομής;
- 36. Στη C#, ποια είναι η διάκριση μεταξύ όψιμης και πρώιμης δέσμευσης;
- 37. Διαφοροποίηση μεταξύ Directcast και Ctype;
- 38. Πώς χρησιμοποιείται το HashSet στη C#;
- 39. Εξηγήστε το Thread Pooling σε C#.
- 40. Ποια είναι η διαφορά μεταξύ των λέξεων-κλειδιών Const και ReadOnly στο C#;
- 41. Ποιες λεπτομέρειες σχετικά με το αρχείο C# XSD μπορείτε να δώσετε;
- 42. Τι σημαίνουν για εσάς οι ιδιότητες Get and Set Accessor;
- 43. Τι ακριβώς είναι η ένεση εξάρτησης στην C#;
- Συμπέρασμα
Η C# (παλαιότερα γνωστή ως C sharp) είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού που χρησιμοποιείται συχνά από προγραμματιστές για την εκτέλεση πολλών δραστηριοτήτων και την επίτευξη πολλαπλών στόχων.
Οι αντικειμενοστρεφείς γλώσσες προγραμματισμού, όπως η C++, η Python και η Java, διατίθενται σε διάφορες γεύσεις. Αυτές οι γλώσσες προγραμματισμού έχουν σχεδιαστεί για να λειτουργούν μέσα σε ένα συγκεκριμένο πλαίσιο. Ομοίως, η C# δημιουργείται και αναπτύσσεται για ένα συγκεκριμένο πλαίσιο, δηλαδή το NET.
Το πλαίσιο .NET δημιουργήθηκε από Microsoft. Παρέχει μια τεράστια πλατφόρμα για την ανάπτυξη εφαρμογών, δηλώσεων, οδηγιών εφαρμογών και ούτω καθεξής. Το C# μπορεί να χρησιμοποιηθεί για ανάπτυξη ιστού, παιχνίδια, κινητές εφαρμογές, εφαρμογές windows και άλλα παρόμοια έργα.
Με τέτοια πλεονεκτήματα, η χρήση της C# έχει επεκταθεί και η ανάγκη για ειδικούς που μπορούν να τη χρησιμοποιήσουν με ακρίβεια έχει διπλασιαστεί. Επειδή το C# είναι τόσο δημοφιλές γλώσσα προγραμματισμού, ένα πλήθος μεγάλων και μικρών επιχειρήσεων βασίζουν τα προϊόντα τους σε αυτό.
Έτσι, εξασκηθείτε σε ερωτήσεις βασικού και προχωρημένου επιπέδου C# για να κάνετε άσσο τις συνεντεύξεις.
1. Τι ακριβώς είναι το C#;
Το Microsoft C# είναι ένα σύγχρονο, γενικής χρήσης, αντικειμενοστραφής προγραμματισμός Γλώσσα. Η C# προορίζεται για την Κοινή Γλωσσική Υποδομή (CLI), η οποία περιλαμβάνει εκτελέσιμο κώδικα και περιβάλλον χρόνου εκτέλεσης που επιτρέπει τη χρήση πολλών γλωσσών υψηλού επιπέδου σε διαφορετικά συστήματα και αρχιτεκτονικές υπολογιστών.
2. Τι διακρίνει το C# από το C;
Η C είναι συνήθως γνωστή ως διαδικαστική γλώσσα, ενώ η C# είναι πιο αντικειμενοστραφή. Η κύρια διάκριση είναι ότι η C# επιτρέπει την αυτοματοποιημένη συλλογή σκουπιδιών μέσω του Common Language Runtime (CLR), ενώ η C όχι. Η C# απαιτεί την εκτέλεση του πλαισίου.NET, ενώ η C είναι γλώσσα ανεξάρτητη από πλατφόρμα.
3. Τι ακριβώς είναι μια τάξη;
Μια κλάση χρησιμεύει ως πρότυπο για την κατασκευή αντικειμένων. Μαζί με τις τεχνικές, έχει ιδιότητες. Από μια κλάση, μπορούμε να παράγουμε πολλές παρουσίες ενός αντικειμένου.
4. Τι ακριβώς είναι ένα αντικείμενο;
Μια παρουσία κλάσης γνωστή ως αντικείμενο είναι ο τρόπος με τον οποίο έχουμε πρόσβαση στις λειτουργίες μιας κλάσης. Για να κατασκευάσουμε ένα αντικείμενο, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί «νέα». Οι συναρτήσεις, τα μέλη δεδομένων και η συμπεριφορά μιας κλάσης που παράγει ένα αντικείμενο στη μνήμη αποθηκεύονται.
5. Ποια είναι η διάκριση μεταξύ των όρων static, public και void;
Οπουδήποτε στο πρόγραμμα μπορεί να έχει πρόσβαση σε μεταβλητές που ορίζονται δημόσια. Οι στατικές μεταβλητές μπορούν να προσπελαστούν καθολικά χωρίς την απαίτηση δημιουργίας παρουσίας κλάσης. Στη C#, ένας τροποποιητής τύπου που ονομάζεται Void χρησιμοποιείται για να υποδείξει τον τύπο επιστροφής μιας μεθόδου.
6. Ορίστε τους κατασκευαστές.
Ένας κατασκευαστής είναι μια συνάρτηση μέλους συγκεκριμένης κατηγορίας. Όταν σχηματίζεται ένα αντικείμενο, ο κατασκευαστής καλείται αυτόματα. Η κλάση κατασκευάζει όλες τις τιμές των μελών δεδομένων όπως αρχικοποιείται.
7. Τι είναι το C# στη συλλογή σκουπιδιών;
Η διαδικασία καθαρισμού της μνήμης που έχει καταληφθεί από ανεπιθύμητα αντικείμενα είναι γνωστή ως συλλογή σκουπιδιών. Μια ορισμένη ποσότητα μνήμης εκχωρείται αυτόματα σε ένα αντικείμενο κλάσης όταν δημιουργείται στη μνήμη σωρού. Τώρα που ολοκληρώσατε την εργασία με το στοιχείο, ο χώρος μνήμης που καταλάμβανε παλαιότερα χάνεται. Η μνήμη πρέπει να ελευθερωθεί.
8. Τι ακριβώς σημαίνει δομή στη C#;
Στη C#, μια δομή είναι ένας τύπος δεδομένων που αποτελείται από πολλούς τύπους δεδομένων, όπως μεθόδους, πεδία, κατασκευαστές, σταθερές, ιδιότητες, ευρετήρια, τελεστές, ακόμη και άλλες δομές. Μια δομή βοηθά στην ενοποίηση πολλών ειδών δεδομένων σε μια ενιαία μονάδα. Με αυτόν τον τρόπο, είναι ανάλογα με τα μαθήματα. Οι δομές είναι τύποι τιμών, ενώ οι κλάσεις είναι τύποι αναφοράς.
9. Πώς μεταγλωττίζεται ο κώδικας C#;
Όταν δημιουργείται ένα έργο, ο πηγαίος κώδικας C# μεταγλωττίζεται σε ενδιάμεση γλώσσα (IL). Το IL είναι μια συλλογή εντολών που δημιουργεί κώδικα μηχανής για εκτέλεση σε έναν επεξεργαστή μηχανής. Ο κώδικας αποστέλλεται από τον προεπεξεργαστή στον μεταγλωττιστή, μετά στον συναρμολογητή και τέλος στον σύνδεσμο σε τέσσερα στάδια.
10. Περιγράψτε ξεκάθαρα τις διαφορετικές κλάσεις C#.
- Στατική: Είναι το είδος της κλάσης που δεν μπορεί να δημιουργηθεί, επομένως δεν μπορούμε να χρησιμοποιήσουμε τη νέα λέξη-κλειδί για να δημιουργήσουμε ένα αντικείμενο, αλλά μπορούμε να καλέσουμε τα μέλη της κλάσης απευθείας χρησιμοποιώντας το όνομα της κλάσης τους.
- Abstract: Για να ορίσετε αφηρημένες κλάσεις, χρησιμοποιήστε τη λέξη-κλειδί abstract. Δεν μπορούν να δημιουργηθούν αντικείμενα για αφηρημένες κλάσεις. Πρέπει να κληρονομηθεί σε μια υποκατηγορία εάν θέλετε να το χρησιμοποιήσετε. Σε μια κλάση Abstract επιτρέπονται απλοί ορισμοί αφηρημένων και μη αφηρημένων μεθόδων.
- Μερική: Αυτή η κλάση σάς δίνει τη δυνατότητα να διαχωρίσετε τις ιδιότητες, τις μεθόδους και τα συμβάντα σας σε πολλά αρχεία προέλευσης, τα οποία στη συνέχεια συνδυάζονται σε μία κλάση κατά το χρόνο δημιουργίας.
- Sealed: Μια κλάση σφραγισμένη δεν μπορεί να κληρονομηθεί από άλλη κατηγορία και έχει περιορισμένα χαρακτηριστικά. Οι τροποποιητές πρόσβασης δεν μπορούν να προστεθούν στη σφραγισμένη κλάση.
11. Τι ακριβώς είναι οι Jagged Arrays;
Ένας πίνακας με στοιχεία πίνακα αναφέρεται ως οδοντωτός πίνακας. Τα στοιχεία των οδοντωτών συστοιχιών θα μπορούσαν να έχουν πολλά σχήματα και μεγέθη.
12. Ποια είναι η διάκριση μεταξύ των παραμέτρων out και ref;
Όταν δίνετε ένα όρισμα ως ref, η παράμετρος πρέπει να αρχικοποιηθεί πριν μεταβιβαστεί στη μέθοδο. Μια παράμετρος out, από την άλλη πλευρά, δεν χρειάζεται να αρχικοποιηθεί πριν από την παροχή σε μια μέθοδο.
13. Στην C#, τι είναι ο καταστροφέας;
Ο καταστροφέας είναι ένας τύπος μεθόδου στη C# που είναι μέρος μιας κλάσης. Η κύρια λειτουργία ενός καταστροφέα είναι να διαγράφει στιγμιότυπα μιας κλάσης όταν δεν απαιτούνται πλέον για την απελευθέρωση μνήμης. Οι καταστροφείς είναι μερικές φορές γνωστοί ως οριστικοποιητές.
14. Στην C#, τι είναι ο δείκτης;
Οι δείκτες χρησιμοποιούνται στη C# για την εύρεση παρουσιών μιας κλάσης ή μιας δομής. Επομένως, οι τιμές με ευρετήριο μπορούν να προσπελαστούν παρόμοια με έναν πίνακα, αλλά χωρίς να χρειάζεται να δηλωθεί ρητά ένας τύπος ή στιγμιότυπο μέλος.
15. Ποια είναι η διαφορά μεταξύ διαχειριζόμενου και μη διαχειριζόμενου κώδικα;
Ο διαχειριζόμενος κώδικας σάς επιτρέπει να εκτελείτε κώδικα στο πλαίσιο.NET σε ένα διαχειριζόμενο περιβάλλον χρόνου εκτέλεσης CLR.
Ο ελεγχόμενος κώδικας εκτελείται στο περιβάλλον διαχειριζόμενου χρόνου εκτέλεσης και όχι στο λειτουργικό σύστημα. Παρέχει μια ποικιλία υπηρεσιών, όπως αποκομιδή απορριμμάτων, χειρισμός εξαιρέσεων και ούτω καθεξής.
Ο μη διαχειριζόμενος κώδικας είναι κώδικας που δεν εκτελείται στο CLR και λειτουργεί εκτός του πλαισίου.NET. Δεν παρέχουν γλωσσικές υπηρεσίες υψηλού επιπέδου και ως εκ τούτου λειτουργούν χωρίς αυτές. Η C++ είναι ένα τέτοιο παράδειγμα.
16. Περιγράψτε τη σειριοποίηση.
Πρέπει να δημιουργηθεί μια ροή byte από το στοιχείο για να μεταφερθεί μέσω δικτύου. Η σειριοποίηση είναι η πράξη μετατροπής ενός στοιχείου σε μια ροή byte. Η διασύνδεση Serialize πρέπει να υλοποιηθεί για να μπορεί να σειριοποιηθεί ένα αντικείμενο. Το αντίθετο της κατασκευής ενός αντικειμένου από μια ροή byte ονομάζεται αποσειριοποίηση.
17. Στη C#, πώς διαφέρουν τα πεδία και οι ιδιότητες μεταξύ τους;
Ένα πεδίο είναι ένα μέλος κλάσης ή ένα αντικείμενο οποιουδήποτε είδους που χρησιμεύει ως τοποθεσία για την αποθήκευση δεδομένων, ενώ μια ιδιότητα είναι ένα μέλος κλάσης που προσφέρει μια μέθοδο για ανάγνωση, εγγραφή και υπολογισμό της τιμής ενός ιδιωτικού πεδίου.
18. Πώς μπορείτε να περιγράψετε τη χρήση εντολών σε C# λεπτομερώς;
Η δήλωση use χρησιμοποιείται για τον περιορισμό της χρήσης ενός ή περισσότερων πόρων εντός της εφαρμογής. Οι πόροι καταναλώνονται και αποδεσμεύονται σε σταθερή βάση.
Η κύρια δουλειά αυτής της δήλωσης είναι να διαχειρίζεται ανεπιθύμητους πόρους και να τους αποδεσμεύει αυτόματα. Μόλις σχηματιστεί το αντικείμενο που χρησιμοποιεί τον πόρο, βεβαιωθείτε ότι η συνάρτηση διάθεσης του αντικειμένου καλείται να απελευθερώσει τους πόρους που απαιτούνται από αυτό το αντικείμενο. Εδώ είναι όπου η χρήση δηλώσεων είναι χρήσιμη.
19. Πώς θα υλοποιούσατε πολλές διεπαφές με το ίδιο όνομα μεθόδου στην ίδια κλάση;
Για να εφαρμόσετε πολλές διεπαφές με το ίδιο όνομα μεθόδου, αποφύγετε την εφαρμογή τους στο σώμα της συνάρτησης. Αντίθετα, θα παρέχετε το όνομα της διεπαφής απευθείας στο σώμα της μεθόδου. Ο μεταγλωττιστής θα αναγνωρίσει ποιες μεθόδους διεπαφής αναφέρονται, επιλύοντας το πρόβλημα.
20. Στη C#, ποια είναι η διαφορά μεταξύ Task και Thread;
Ένα νήμα είναι ένα πραγματικό νήμα λειτουργικού συστήματος με τους δικούς του πόρους στοίβας και πυρήνα. Το νήμα παρέχει τον περισσότερο έλεγχο. Το νήμα σάς επιτρέπει να κάνετε Ακύρωση (), Αναστολή () ή Συνέχιση (). Η κατάσταση ενός νήματος μπορεί να παρατηρηθεί ή να οριστούν τα χαρακτηριστικά του, όπως το μέγεθος στοίβας, η κατάσταση διαμερίσματος και η κουλτούρα. Το CLR διατηρεί μια δεξαμενή νημάτων που τυλίγονται από το ThreadPool.
Η παράλληλη βιβλιοθήκη εργασιών έχει μια κλάση που ονομάζεται Task. Σε αντίθεση με το ThreadPool, το Task δεν έχει το δικό του νήμα του λειτουργικού συστήματος. Οι εργασίες εκτελούνται από το TaskScheduler, αν και ο προεπιλεγμένος προγραμματιστής εκτελείται από το ThreadPool. Είναι δυνατό να ειδοποιηθείτε όταν ολοκληρωθεί μια Εργασία και να λάβετε ένα αποτέλεσμα.
21. Ποια είναι η συνάρτηση οριστικοποίησης στη C#;
Η κλάση αντικειμένου που χρησιμοποιείται για ενέργειες καθαρισμού ορίζει τη συνάρτηση οριστικοποίησης (). Όταν μια αναφορά σε ένα αντικείμενο δεν χρησιμοποιείται για μεγάλο χρονικό διάστημα, ο συλλέκτης σκουπιδιών συχνά καλεί αυτήν τη λειτουργία.
Ο συλλέκτης απορριμμάτων απελευθερώνει αυτόματα ελεγχόμενους πόρους, αλλά εάν θέλετε να ελευθερώσετε περιττούς πόρους όπως χειρισμούς αρχείων, συνδέσεις δεδομένων κ.λπ., πρέπει να εφαρμόσετε ρητά τη λειτουργία οριστικοποίησης.
22. Κάντε μια διάκριση μεταξύ οριστικοποίησης μπλοκ και οριστικοποίησης.
Το ολοκληρωμένο μπλοκ καλείται μετά την ολοκλήρωση των μπλοκ try-and-catch, καθώς απαιτείται για τον χειρισμό εξαιρέσεων. Το μπλοκ κώδικα εκτελείται ανεξάρτητα από το αν καταλήφθηκε η εξαίρεση. Ο κωδικός του μπλοκ είναι γενικά πιο καθαρός.
Η μέθοδος οριστικοποίησης επικαλείται λίγο πριν από τη συλλογή σκουπιδιών. Οι κύριες αρμοδιότητες της οριστικοποιημένης μεθόδου είναι η εκκαθάριση του μη διαχειριζόμενου κώδικα, ο οποίος ενεργοποιείται αυτόματα κάθε φορά που δεν γίνεται εκ νέου κλήση μιας παρουσίας.
23. Περιγράψτε τη μέθοδο διάθεσης C# λεπτομερώς.
Η συνάρτηση disposeof() ελευθερώνει τους αχρησιμοποίητους πόρους ενός αντικειμένου. Αχρησιμοποίητοι πόροι, όπως αρχεία, συνδέσεις δεδομένων κ.λπ. Αυτή η λειτουργία καθορίζεται στη διεπαφή IDisposable, η οποία υλοποιείται από την κλάση δηλώνοντας τη διεπαφή IDisposable body.
Η λειτουργία απόρριψης δεν καλείται αυτόματα. ο προγραμματιστής πρέπει να το εφαρμόσει χειροκίνητα για αποτελεσματική χρήση πόρων.
24. Τι είναι η Υπερφόρτωση Μεθόδου C#; Διευκρινίζω.
Η υπερφόρτωση μεθόδου είναι μια τυπική προσέγγιση στην C# που χρησιμοποιείται για την κατασκευή ενός αριθμού μεθόδων με το ίδιο όνομα και καθορισμένες υπογραφές. Αυτή η διαδικασία επαναλαμβάνεται με την ίδια τάξη.
Όταν ολοκληρωθεί η διαδικασία υπερφόρτωσης της μεθόδου, ο μεταγλωττιστής ξεκινά τις λειτουργίες για την κλήση καθορισμένων ενεργειών με βάση την υπερφόρτωση της μεθόδου.
25. Ποια είναι η διάκριση μεταξύ μόνο για ανάγνωση και σταθερών;
Οι σταθερές μεταβλητές δηλώνονται και αρχικοποιούνται κατά τη μεταγλώττιση. Μετά από αυτό, αυτή η τιμή δεν μπορεί να αλλάξει. Από την άλλη πλευρά, το μόνο για ανάγνωση χρησιμοποιείται όταν έχει εκχωρηθεί μια τιμή κατά το χρόνο εκτέλεσης.
26. Τι είναι ο Έλεγχος χρήστη και ο Προσαρμοσμένος Έλεγχος;
Ο μεταγλωττισμένος κώδικας χρησιμοποιείται για την ανάπτυξη προσαρμοσμένων στοιχείων ελέγχου. Αυτά μπορεί να περιλαμβάνονται στην εργαλειοθήκη και είναι εύχρηστα. Με μεταφορά και απόθεση αυτών των στοιχείων ελέγχου, οι προγραμματιστές μπορούν να τα συμπεριλάβουν στις φόρμες ιστού τους.
Τα στοιχεία ελέγχου χρήστη και τα αρχεία που περιλαμβάνονται στο ASP είναι αρκετά παρόμοια. Είναι επίσης απλά στην κατασκευή τους. Τα στοιχεία ελέγχου χρήστη, από την άλλη πλευρά, δεν μπορούν να προστεθούν στην εργαλειοθήκη. Επίσης, δεν μπορούν να τραβηχτούν και να πέσουν από αυτό.
27. Στη C#, τι είναι ένας εκπρόσωπος πολλαπλής διανομής;
Ένας εκπρόσωπος πολλαπλής διανομής διατηρεί αναφορές ή διευθύνσεις σε πολλές λειτουργίες ταυτόχρονα. Όταν καλούμε τον εκπρόσωπο πολλαπλής διανομής, θα καλέσει επίσης όλες τις άλλες λειτουργίες στις οποίες αναφέρεται. Για να καλέσετε πολλές μεθόδους, χρησιμοποιήστε ολόκληρη την υπογραφή της μεθόδου, όπως ακριβώς και ο πληρεξούσιος. Ως παράδειγμα:
28. Τι ακριβώς είναι η συγκέντρωση αντικειμένων στην C#;
Η συγκέντρωση αντικειμένων είναι μια τεχνική σχεδιασμού σε λογισμικό που ανακυκλώνει πράγματα αντί να τα ξαναχτίζει. Αυτό το επιτυγχάνει αποθηκεύοντας επιλεγμένα αντικείμενα σε μια πισίνα και καθιστώντας τα διαθέσιμα για χρήση όταν τα ζητήσει μια εφαρμογή. Αυτή η διαδικασία βελτιώνει την απόδοση μειώνοντας τη δημιουργία άσκοπων αντικειμένων.
29. Τι ακριβώς είναι τα γενικά στο C#.NET;
Τα γενικά χρησιμοποιούνται για τη δημιουργία επαναχρησιμοποιήσιμων κατηγοριών κώδικα προκειμένου να μειωθεί ο πλεονασμός κώδικα, να βελτιωθεί η ασφάλεια τύπων και να βελτιωθεί η ταχύτητα. Μπορούμε να κατασκευάσουμε τάξεις συλλογής με γενόσημα.
Στο Σύστημα, θα πρέπει να χρησιμοποιείται ένας γενικός χώρος ονομάτων αντί για κλάσεις όπως το ArrayList. Χώρος ονομάτων για συλλογές. Η χρήση παραμετροποιημένων τύπων ενθαρρύνεται από τα γενόσημα.
30. Είναι εφικτή η παράκαμψη μιας ιδιωτικής εικονικής μεθόδου;
Μια ιδιωτική εικονική μέθοδος δεν μπορεί να παρακαμφθεί, καθώς είναι ιδιωτική στην κλάση και δεν είναι δυνατή η πρόσβαση από έξω από αυτήν.
31. Διακρίνετε μεταξύ υπερφόρτωσης μεθόδου και παράκαμψης μεθόδου σε C#;
Η παράκαμψη μεθόδου είναι η διαδικασία αλλαγής του θεμελιώδους ορισμού μιας παραγόμενης κλάσης. Οι μέθοδοι της παραγόμενης κλάσης τελικά συμπεριφέρονται διαφορετικά ως αποτέλεσμα αυτής της στρατηγικής.
Η υπερφόρτωση μεθόδου, από την άλλη πλευρά, μπορεί να περιγραφεί ως η πράξη δημιουργίας πολλών μεθόδων με το ίδιο όνομα αλλά διακριτές υπογραφές κάτω από την ίδια κλάση.
32. Στη C#, ποια είναι η διαφορά μεταξύ String και StringBuilder;
Ένα αντικείμενο συμβολοσειράς είναι αμετάβλητο, πράγμα που σημαίνει ότι δεν μπορεί να τροποποιηθεί αφού δημιουργηθεί. Οποιαδήποτε προσπάθεια αλλαγής του αντικειμένου συμβολοσειράς θα έχει ως αποτέλεσμα τη δημιουργία ενός νέου αντικειμένου συμβολοσειράς.
Ένα αντικείμενο δημιουργίας συμβολοσειρών, από την άλλη πλευρά, είναι εύπλαστο και μπορεί να τροποποιηθεί όπως κρίνει σκόπιμο ο προγραμματιστής.
33. Τι ακριβώς είναι οι εκπρόσωποι;
Στην C++, οι πληρεξούσιοι είναι ουσιαστικά ίδιοι με τους δείκτες συνάρτησης. Η μόνη διάκριση μεταξύ των δύο είναι ότι οι πληρεξούσιοι είναι ασφαλείς για τον τύπο, ενώ οι δείκτες συνάρτησης όχι. Οι εκπρόσωποι είναι απαραίτητοι επειδή επιτρέπουν την κατασκευή γενικών λειτουργιών ασφαλείας τύπου.
34. Πότε πρέπει να χρησιμοποιείτε το multithreading στην C# και πότε πρέπει να το αποφεύγετε;
Το Multithreading, συχνά γνωστό ως threading, είναι μια αποτελεσματική προσέγγιση για την αύξηση της ταχύτητας ενός προγράμματος στο οποίο πολλές δραστηριότητες εκτελούνται ταυτόχρονα. Επιτρέπει σε διάφορα νήματα να εκτελούνται ανεξάρτητα, αντί να περιμένουν να ολοκληρωθεί το προηγούμενο βήμα. Αυτό έχει τη δυνατότητα να αυξάνει τον ρυθμό ενός προγράμματος.
Ωστόσο, όταν πολλές από τις διεργασίες του προγράμματος είναι διασυνδεδεμένες, δεν συνιστάται η χρήση πολλαπλών νημάτων. Για παράδειγμα, εάν το Βήμα Β εξαρτιόταν από την ολοκλήρωση του Βήματος Α πρώτα, η πολυνηματική θα προκαλούσε προβλήματα απόδοσης και ελαττώματα λογισμικού. Το Threading γίνεται όλο και πιο ευαίσθητο καθώς ένα πρόγραμμα αναπτύσσεται σε πολυπλοκότητα.
35. Στη C#, τι είναι ένας εκπρόσωπος πολλαπλής διανομής;
Ένας πληρεξούσιος πολλαπλής διανομής στη C#, σε αντίθεση με έναν βασικό εκπρόσωπο, αναφέρεται σε πολλές μεθόδους-στόχους. Όταν χρησιμοποιείται ένας πληρεξούσιος πολλαπλής διανομής, καλούνται όλες οι συναρτήσεις που επισημαίνονται από τον πληρεξούσιο. Υλοποιούνται με τη βοήθεια της κλάσης MulticastDelegate του συστήματος.
36. Στη C#, ποια είναι η διάκριση μεταξύ όψιμης και πρώιμης δέσμευσης;
- Η πρώιμη δέσμευση λαμβάνει χώρα κατά το χρόνο μεταγλώττισης, ενώ η καθυστερημένη σύνδεση λαμβάνει χώρα κατά τη διάρκεια του χρόνου εκτέλεσης.
- Το όψιμο δέσιμο είναι συχνά πιο αργό από το πρώιμο δέσιμο, καθώς συμβαίνει κατά το χρόνο εκτέλεσης.
- Σε αντίθεση με την καθυστερημένη σύνδεση, η οποία χρησιμοποιεί το αντικείμενο για την επίλυση κλήσεων μεθόδων, η πρώιμη δέσμευση επιλύει τις κλήσεις μεθόδων χρησιμοποιώντας πληροφορίες κλάσης.
37. Διαφοροποίηση μεταξύ Directcast και Ctype;
Το είδος του αντικειμένου που απαιτεί ο τύπος χρόνου εκτέλεσης να ταιριάζει με τον καθορισμένο τύπο στο DirectCast μετατρέπεται χρησιμοποιώντας το DirectCast.
Όταν προσδιορίζεται μια μετατροπή μεταξύ μιας έκφρασης και ενός τύπου, χρησιμοποιείται το Ctype.
38. Πώς χρησιμοποιείται το HashSet στη C#;
Στην C#, ένα HashSet είναι μια μη ταξινομημένη συλλογή από διακριτές τιμές. Γενικά, χρησιμοποιείται για να αποτρέψει την εισαγωγή διπλότυπων στοιχείων σε μια συλλογή και αποδίδει καλύτερα από μια λίστα σε αυτήν την εργασία.
Η κλάση HashSet, η οποία προέρχεται από το System, χρησιμοποιείται για την υλοποίησή του.
39. Εξηγήστε το Thread Pooling σε C#.
Στην C#, μια ομάδα νημάτων είναι μια συλλογή από νήματα. Αυτά τα νήματα χρησιμοποιούνται για την εκτέλεση εργασιών χωρίς να παρεμβαίνουν στη λειτουργικότητα του πρωτεύοντος νήματος. Ένα νήμα σε μια ομάδα νημάτων επιστρέφει στη συλλογή νημάτων όταν τελειώσει η εκτέλεση.
Η κλάση System περιέχει κλάσεις που χειρίζονται το νήμα στο χώρο συγκέντρωσης νημάτων και τις ενέργειές του. Σπείρωμα. Το ThreadPool είναι ένας χώρος ονομάτων.
40. Ποια είναι η διαφορά μεταξύ των λέξεων-κλειδιών Const και ReadOnly στο C#;
- Το ReadOnly δεν μπορεί να δηλωθεί στη μέθοδο, ενώ το Const μπορεί.
- Το Const είναι μια σταθερά χρόνου μεταγλώττισης, ενώ το ReadOnly είναι μια σταθερά χρόνου εκτέλεσης.
- Οι τιμές ReadOnly μπορούν να αλλάξουν, αλλά οι τιμές Const δεν μπορούν.
41. Ποιες λεπτομέρειες σχετικά με το αρχείο C# XSD μπορείτε να δώσετε;
Το XSD σημαίνει ορισμός σχήματος XML. Εάν κανένα αρχείο XSD δεν είναι συνδεδεμένο με το αρχείο XML, μπορεί να έχει οποιαδήποτε χαρακτηριστικά, στοιχεία και ετικέτες. Το αρχείο XSD παρέχει ένα πλαίσιο για το αρχείο XML, προσδιορίζοντας ποια στοιχεία και χαρακτηριστικά πρέπει να υπάρχουν στο αρχείο XML καθώς και τη σειρά τους.
42. Τι σημαίνουν για εσάς οι ιδιότητες Get and Set Accessor;
Στην C#, το Get και το Set έχουν ονομαστεί Accessors, καθώς κατασκευάζονται με χρήση ιδιοτήτων. Μια ιδιότητα επιτρέπει την ανάγνωση και τη γραφή στην αξία ενός ιδιωτικού πεδίου. Τέτοια ιδιωτικά πεδία είναι προσβάσιμα μέσω Accessors.
Ενώ η ιδιότητα Get χρησιμοποιείται για την επιστροφή της τιμής μιας ιδιότητας, η ιδιότητα Set χρησιμοποιείται για τον ορισμό της τιμής.
43. Τι ακριβώς είναι η ένεση εξάρτησης στην C#;
Η ένεση εξάρτησης (DI) είναι μια τεχνική σχεδιασμού σε C# που χρησιμοποιείται για τη δημιουργία χαλαρά συνδεδεμένου προγραμματισμού. Αυτή η διαδικασία μεταφέρει τη δημιουργία και τη σύνδεση εξαρτημένων αντικειμένων εκτός της κλάσης στην οποία βασίζονται. Ο κύριος στόχος είναι να γίνουν οι μελλοντικές τροποποιήσεις κώδικα πιο διαχειρίσιμες.
Συμπέρασμα
Η C# είναι η κύρια γλώσσα προγραμματισμού που χρησιμοποιείται σε όλες τις γλώσσες προγραμματισμού ανώτερου επιπέδου. Οι προγραμματιστές C# έχουν μεγάλη ζήτηση και μπορούν να βρουν ελκυστικές προοπτικές καριέρας σε κλάδους όπως η ανάπτυξη front-end, ο προγραμματισμός back-end και η ανάπτυξη εφαρμογών. Και επειδή η Microsoft το υποστηρίζει, η δημοτικότητα της C# θα αυξηθεί μόνο.
Τα παραπάνω είναι οι πιο κρίσιμες ερωτήσεις συνέντευξης C# για έμπειρους επαγγελματίες και αρχάριους. Βλέπω Σειρά συνεντεύξεων Hashdork για βοήθεια στην προετοιμασία της συνέντευξης.
Αφήστε μια απάντηση