c using statement c virtual method tutorial with examples
Αυτός ο σε βάθος οδηγός εξηγεί τα πάντα για το C # χρησιμοποιώντας δήλωση και εικονική μέθοδο. Θα μάθετε επίσης τη διαφορά μεταξύ αφηρημένων και εικονικών μεθόδων:
Το μπλοκ Χρήση βοηθά κυρίως στη διαχείριση πόρων, επιτρέπει στο σύστημα να διαχειρίζεται τους πόρους του καθορίζοντας το εύρος του αντικειμένου και την απαίτηση πόρων του.
Το .Net Framework προσφέρει διαφορετικούς τρόπους για τη διαχείριση πόρων για αντικείμενα που χρησιμοποιούν έναν συλλέκτη απορριμμάτων. Αυτό σημαίνει ότι δεν χρειάζεται να εκχωρήσετε και να αφαιρέσετε ρητά αντικείμενα μνήμης. Η λειτουργία καθαρισμού για οποιοδήποτε μη διαχειριζόμενο αντικείμενο γίνεται με τη χρήση καταστροφέα.
Για να βοηθήσει τους προγραμματιστές να το επιτύχουν αυτό, το C # χρησιμοποιώντας δήλωση παρέχει μια συνθήκη για την καταστροφή του αντικειμένου.
=> Δείτε τον δωρεάν εκπαιδευτικό οδηγό C # εδώ .
Για να επιτευχθεί αυτόματη καταστροφή του αντικειμένου, το C # προσφέρει μια μέθοδο διάθεσης που μπορεί να κληθεί όταν το αντικείμενο δεν απαιτείται πλέον. Η δήλωση χρήσης στο C # καθορίζει ένα όριο υπό όρους για την ύπαρξη του αντικειμένου. Μόλις η ακολουθία εκτέλεσης εγκαταλείψει το όριο χρήσης, το πλαίσιο .Net θα γνωρίζει ότι ήρθε η ώρα να καταστρέψει αυτό το αντικείμενο.
Τι θα μάθετε:
- C # Χρήση δήλωσης
- Εικονική μέθοδος C #
- Τι είναι μια εικονική μέθοδος;
- Εικονικές μέθοδοι: Λίγα σημεία που πρέπει να θυμάστε
- Ποια είναι η χρήση της εικονικής λέξης-κλειδιού στο C #;
- Διαφορά μεταξύ αφηρημένης μεθόδου και εικονικής μεθόδου
- Διαφορά μεταξύ εικονικής και παράκαμψης στο C #
- Είναι υποχρεωτικό να παρακάμψετε την εικονική μέθοδο στο C #;
- συμπέρασμα
C # Χρήση δήλωσης
Εφαρμογή διεπαφής IDisposable για χρήση
Η δήλωση C # Using επιτρέπει στους προγραμματιστές να εφαρμόσουν πολλούς πόρους σε μία δήλωση. Όλα τα αντικείμενα που ορίζονται στο μπλοκ κώδικα χρήσης θα πρέπει να εφαρμόζουν τη διεπαφή IDisposable, και αυτό επιτρέπει στο πλαίσιο να καλεί τις μεθόδους διάθεσης για τα καθορισμένα αντικείμενα μέσα στη δήλωση μετά την έξοδο.
Παράδειγμα
Η χρήση δηλώσεων μπορεί να συνδυαστεί με έναν τύπο που μπορεί να εφαρμόσει IDisposable όπως StreamWriter, StreamReader κ.λπ.
Ας ρίξουμε μια ματιά σε ένα απλό πρόγραμμα:
πώς να προβάλετε αρχεία δεδομένων στα παράθυρα
public class Program { public static void Main(string() args) { using (SysObj so = new SysObj()) { Console.WriteLine('Inside using statement'); } Console.WriteLine('Outside of the using statement block'); } } class SysObj : IDisposable { public void Dispose() { Console.WriteLine('Dispose method'); } }
Παραγωγή
Το αποτέλεσμα του παραπάνω προγράμματος:
Εσωτερική χρήση δήλωσης
Απορρίψτε τη μέθοδο
Εκτός του μπλοκ δήλωσης χρήσης
Εξήγηση
Στο παραπάνω παράδειγμα, όταν εκτελείται το πρόγραμμα, πρώτα εκτίθεται η παρουσία 'SysObj' στο σωρό μνήμης. Στη συνέχεια, το μπλοκ που χρησιμοποιεί αρχίζει να εκτελείται και εκτυπώνει την έξοδο που ορίσαμε μέσα στην κονσόλα. Στη συνέχεια, καθώς το μπλοκ Χρησιμοποίηση δήλωσης τελειώνει, η εκτέλεση μεταφέρεται αμέσως στη μέθοδο διάθεσης
Στη συνέχεια, ο κωδικός βγαίνει από το μπλοκ δηλώσεων και εκτυπώνει την εξωτερική δήλωση στην κονσόλα.
Εικονική μέθοδος C #
Τι είναι μια εικονική μέθοδος;
Μια εικονική μέθοδος είναι μια μέθοδος κλάσης που προσφέρει λειτουργικότητα στον προγραμματιστή για να παρακάμψει μια μέθοδο στην παράγωγη κλάση που έχει την ίδια υπογραφή. Οι εικονικές μέθοδοι χρησιμοποιούνται κυρίως για την εκτέλεση πολυμορφισμού στο περιβάλλον OOPs.
Μια εικονική μέθοδος μπορεί να έχει εφαρμογή τόσο στις παραγόμενες όσο και στις βασικές τάξεις. Χρησιμοποιείται κυρίως όταν ένας χρήστης πρέπει να έχει περισσότερη λειτουργικότητα στην παράγωγη κλάση.
Μια εικονική μέθοδος δημιουργείται πρώτα σε μια βασική κλάση και μετά παρακάμπτεται στην παράγωγη κλάση. Μια εικονική μέθοδος μπορεί να δημιουργηθεί στη βασική τάξη χρησιμοποιώντας τη λέξη-κλειδί «εικονική» και η ίδια μέθοδος μπορεί να παρακαμφθεί στην παράγωγη κλάση χρησιμοποιώντας τη λέξη-κλειδί «παράκαμψη».
Εικονικές μέθοδοι: Λίγα σημεία που πρέπει να θυμάστε
- Η εικονική μέθοδος στην παράγωγη κλάση έχει την εικονική λέξη-κλειδί και η μέθοδος στην παράγωγη κλάση θα πρέπει να έχει παράκαμψη λέξης-κλειδιού.
- Εάν μια μέθοδος δηλώνεται ως εικονική μέθοδος στην βασική κλάση, τότε δεν απαιτείται πάντα από την παράγωγη κλάση να παρακάμψει αυτή τη μέθοδο, δηλαδή είναι προαιρετική η παράκαμψη μιας εικονικής μεθόδου στην παράγωγη κλάση.
- Εάν μια μέθοδος έχει τον ίδιο ορισμό τόσο στη βάση όσο και στην παράγωγη κλάση, τότε δεν απαιτείται παράκαμψη της μεθόδου. Η παράκαμψη απαιτείται μόνο εάν και οι δύο έχουν διαφορετικό ορισμό.
- Η παράκαμψη μέθοδος μας επιτρέπει να χρησιμοποιήσουμε περισσότερες από μία φόρμες για την ίδια μέθοδο, επομένως δείχνει επίσης πολυμορφισμό.
- Όλες οι μέθοδοι δεν είναι εικονικές από προεπιλογή.
- Ένας εικονικός τροποποιητής δεν μπορεί να χρησιμοποιηθεί μαζί με ιδιωτικούς, στατικούς ή αφηρημένους τροποποιητές.
Ποια είναι η χρήση της εικονικής λέξης-κλειδιού στο C #;
Η εικονική λέξη-κλειδί στο C # χρησιμοποιείται για να παρακάμψει το βασικό μέλος της κλάσης στην παράγωγη κλάση του με βάση την απαίτηση.
html5 css3 συνεντεύξεις ερωτήσεις και απαντήσεις
Μια εικονική λέξη-κλειδί χρησιμοποιείται για τον καθορισμό της εικονικής μεθόδου στην βασική κλάση και η μέθοδος με την ίδια υπογραφή που πρέπει να παρακαμφθεί στην παράγωγη κλάση, ακολουθείται από παράκαμψη λέξης-κλειδιού.
Διαφορά μεταξύ αφηρημένης μεθόδου και εικονικής μεθόδου
Οι εικονικές μέθοδοι περιέχουν εφαρμογή και επιτρέπουν στην παράγωγη κλάση να την παρακάμψει ενώ η αφηρημένη μέθοδος δεν προσφέρει καμία εφαρμογή και αναγκάζει τους προγραμματιστές να γράψουν μεθόδους παράκαμψης στην παράγωγη κλάση.
Ως εκ τούτου, με απλές λέξεις, οι αφηρημένες μέθοδοι δεν έχουν κώδικα μέσα τους, ενώ η εικονική μέθοδος έχει τη δική της εφαρμογή.
Διαφορά μεταξύ εικονικής και παράκαμψης στο C #
Η εικονική λέξη-κλειδί ακολουθείται συνήθως από την υπογραφή της μεθόδου, την ιδιότητα, κ.λπ. και της επιτρέπει να παρακαμφθεί στην παράγωγη κλάση. Η παράκαμψη λέξης-κλειδιού χρησιμοποιείται στην παράγωγη κλάση με την ίδια μέθοδο / υπογραφή ιδιότητας όπως στην βασική κλάση για να επιτευχθεί παράκαμψη στην παράγωγη κλάση.
Είναι υποχρεωτικό να παρακάμψετε την εικονική μέθοδο στο C #;
Ο μεταγλωττιστής δεν θα επιβάλει ποτέ στους προγραμματιστές να παρακάμψουν μια εικονική μέθοδο. Δεν απαιτείται πάντα από την παράγωγη κλάση να παρακάμψει την εικονική μέθοδο.
Παράδειγμα
Ας ρίξουμε μια ματιά σε ένα παράδειγμα για να κατανοήσουμε με μεγαλύτερη σαφήνεια τις εικονικές μεθόδους.
Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε δύο διαφορετικές μεθόδους στην βασική κλάση, η πρώτη είναι μια μη εικονική μέθοδος και η άλλη είναι μια εικονική μέθοδος με την εικονική λέξη-κλειδί. Και οι δύο αυτές μέθοδοι θα παρακαμφθούν στην παράγωγη κατηγορία.
Ας ρίξουμε μια ματιά:
πώς να εκτυπώσετε τα περιεχόμενα του πίνακα java
Πρόγραμμα
using System; public class Program { public static void Main(string() args) { calculate calc = new calculate (); numbers nmbr = calc; calc.addition(); nmbr.addition(); calc.subtraction(); nmbr.subtraction(); } } public class numbers { public void addition(){ Console.WriteLine('This is addition method'); } public virtual void subtraction(){ Console.WriteLine('This is subtraction method'); } } public class calculate : numbers { public void addition(){ Console.WriteLine('This is addition method in the derived class'); } public override void subtraction(){ Console.WriteLine('This is subtraction method override in derived class'); } }
Παραγωγή
Το αποτέλεσμα του παραπάνω προγράμματος είναι:
Αυτή είναι η μέθοδος προσθήκης στην παράγωγη κλάση
Αυτή είναι η μέθοδος προσθήκης
Αυτή είναι η παράκαμψη μεθόδου αφαίρεσης στην παράγωγη κλάση
Αυτή είναι παράκαμψη μεθόδου αφαίρεσης στην παράγωγη κλάση
Εξήγηση
Στο παραπάνω παράδειγμα, έχουμε δύο κατηγορίες, δηλαδή Αριθμός και Υπολογισμός. Ο αριθμός βασικής κλάσης έχει δύο μεθόδους, δηλαδή προσθήκη και αφαίρεση όπου η προσθήκη είναι μη εικονική μέθοδος και αφαίρεση είναι μια εικονική μέθοδος. Ως εκ τούτου, όταν εκτελούμε αυτό το πρόγραμμα, η εικονική μέθοδος 'προσθήκη' βασικής κλάσης παρακάμπτεται στην υπολογιζόμενη κλάση Υπολογισμός.
Σε μια άλλη κατηγορία 'Πρόγραμμα' δημιουργούμε ένα σημείο εισόδου για να δημιουργήσουμε μια παρουσία της παραγόμενης κλάσης Υπολογισμός και στη συνέχεια εκχωρούμε την ίδια παρουσία στο αντικείμενο παρουσίας της βασικής κλάσης.
Όταν καλούμε τις εικονικές και μη εικονικές μεθόδους χρησιμοποιώντας τις παρουσίες κλάσης, τότε βλέπουμε ότι η εικονική μέθοδος παρακάμπτεται χρησιμοποιώντας και τις δύο παρουσίες, ενώ η μη εικονική μέθοδος παρακάμπτεται μόνο κατά την κλήση της παραγόμενης κλάσης.
συμπέρασμα
Η δήλωση χρήσης στο C # χρησιμοποιείται κυρίως για τη διαχείριση πόρων. Η δήλωση χρήσης καθορίζει ένα όριο υπό όρους για την ύπαρξη ενός αντικειμένου.
Μόλις η εκτέλεση μετακινηθεί από το μπλοκ δήλωσης, λέει στο πλαίσιο να καταστρέψει οποιοδήποτε αντικείμενο που δημιουργήθηκε μέσα στο μπλοκ δήλωσης. Ο κώδικας που ορίζεται μέσα στη δήλωση πρέπει επίσης να εφαρμόζει μια διεπαφή IDisposable για να επιτρέπει στο .Net πλαίσιο να καλεί τη μέθοδο διάθεσης για τα καθορισμένα αντικείμενα.
Μια εικονική μέθοδος επιτρέπει στον χρήστη να παρακάμψει μια μέθοδο στην παράγωγη κλάση που έχει την ίδια υπογραφή με τη μέθοδο στην βασική κλάση. Η εικονική μέθοδος μπορεί να χρησιμοποιηθεί για την επίτευξη πολυμορφισμού σε αντικειμενοστρεφείς γλώσσες προγραμματισμού.
Μια εικονική μέθοδος χρησιμοποιείται κυρίως όταν απαιτείται επιπλέον λειτουργικότητα στην παράγωγη κλάση. Οι εικονικές μέθοδοι δεν μπορούν να είναι ιδιωτικές στατικές ή αφηρημένες. Ορίζεται με τη χρήση μιας εικονικής λέξης-κλειδιού στην κατηγορία βάσης και την παράκαμψη της λέξης-κλειδιού στην παράγωγη κλάση.
=> Παρακολουθήστε τα εκπαιδευτικά σεμινάρια C-In-Depth εδώ
Συνιστώμενη ανάγνωση
- Εκμάθηση Python DateTime με παραδείγματα
- Selenium Find Element By Text Tutorial με παραδείγματα
- MongoDB Sort () Μέθοδος με παραδείγματα
- MongoDB Query Document Using Find () Method (Παραδείγματα)
- Χρήση δρομέα στο MongoDB με παραδείγματα
- C # Τάξεις και αντικείμενα: Ένας σε βάθος οδηγός με παραδείγματα
- Unix Shell Scripting Tutorial με παραδείγματα
- C # Εκπαιδευτικός χειρισμός εξαίρεσης με παραδείγματα κώδικα