C# COMPLETE COURSE
![image description](images/c_Sharp_pic.jpg)
ΕΝΟΤΗΤΑ 21 - LOCAL VARIABLES VS PARAMETERS
INTRODUCTION
Σε αυτό το δωρεάν μάθημα C# θα εξηγήσουμε τη διαφορά που υπάρχει ανάμεσα στον ορισμό του parameter και τον ορισμό ενός local variable. Αν και η εξήγηση είναι πολύ απλή, πολλές φορές ο τρόπος που το ακούμε ή το βλέπουμε γραμμένο σε κάποιο tutorial ή documentation μας μπερδεύει.
DEFINITION OF LOCAL VARIABLE
Ας γυρίσουμε πίσω στο απλό πρόγραμμα που δημιουργήσαμε στο προηγούμενο δωρεάν μάθημα C# και ας μελετήσουμε εκτενέστερα τη μέθοδο CalculateTax() που βρίσκεται μέσα στη κλάση Product.
![Δωρεάν Μαθήματα C#](./Lesson21/pic_1.png)
Η συγκεκριμένη μέθοδος, όπως την έχουμε ορίσει, δεν επιστρέφει καμία τιμή πίσω στο πρόγραμμα μας γιατί το return data type το έχουμε ορίσει να είναι void. Επίσης, μέσα στη παρένθεση, δεν περνάμε καμία απολύτως τιμή οπότε καλούμε και εκτελούμε τη μέθοδο χωρίς να περάσουμε καμία απολύτως τιμή.
Μέσα όμως στο κώδικα της μεθόδου έχουμε ορίσει μια μεταβλητή με το όνομα t η οποία μέσα από το control statement του if-else θα πάρει μια τιμή που τελικά θα την αναθέσει στην μεταβλητή tax που έχει οριστεί στην αρχή της κλάσης σαν instance variable. Η μεταβλητή t θεωρείται σαν local variable γιατί λειτουργεί και ισχύει μόνο μέσα στη μέθοδο. Εκτός μεθόδου δεν μπορεί να τη δει κανένα άλλο στοιχείο ή να την καλέσει απευθείας και να την χρησιμοποιήσει. Όταν λοιπόν ορίζουμε μεταβλητές μέσα σε μια μέθοδο, τότε αυτές οι μεταβλητές έχουν σαν εύρος δράσης μόνο την ίδια την μέθοδο και στοιχεία μέσα από την ίδια μέθοδο έχουν πρόσβαση σε αυτές.
DEFINITION OF PARAMETER
Ας δούμε τώρα τον ορισμό της παραμέτρου μέσα από την μέθοδο SetCost( ) που βρίσκεται μέσα στην κλάση Product.
![Δωρεάν Μαθήματα C#](./Lesson21/pic_2.png)
Στη SetCost( ) μέθοδο, αυτή τη φορά περνάμε μια μεταβλητή μέσα στην παρένθεση της μεθόδου. Η μεταβλητή, εκτός από όνομα, θα περιέχει και το data type (που στο συγκεκριμένο παράδειγμα είναι double) για να γνωρίζουμε τι είδος τιμή θα πρέπει να περάσουμε μέσα στην παρένθεση όταν καλέσουμε τη συγκεκριμένη μέθοδο. Επειδή ορίζουμε την μεταβλητή μέσα στην παρένθεση τότε λαμβάνει την ειδική ονομασία parameter.
Αμέσως μετά τον ορισμό, και εφόσον περάσουμε κάποια τιμή στη μέθοδο, η τιμή της παραμέτρου μπορεί να χρησιμοποιηθεί μέσα στο κώδικα της μεθόδου. Στο συγκεκριμένο παράδειγμα, η μέθοδος SetCost() δεν επιστρέφει καμία τιμή πίσω στο πρόγραμμα μας γιατί το return data type είναι void, όμως οποιαδήποτε τιμή περάσουμε σαν τιμή της παραμέτρου value θα χρησιμοποιηθεί για να αναθέσουμε αυτή τη τιμή στην instance variable cost.
LOCAL VARIABLE VS PARAMETER
Τώρα που αναλύσαμε και καταλάβαμε ποια ακριβώς είναι η διαφορά ανάμεσα σε μια local variable και μια parameter μπορούμε να βάλουμε και τις δύο έννοιες μαζί σε ένα απλό σχεδιάγραμμα για να μπορείτε εύκολα να αναφερθείτε σε αυτό ανά πάσα στιγμή.
![Δωρεάν Μαθήματα C#](./Lesson21/pic_3.png)
Σαν περίληψη των όσων αναλύσαμε μπορούμε να πούμε ότι οι μεταβλητές που ορίζονται μέσα στην παρένθεση της μεθόδου ονομάζονται parameters ενώ οι μεταβλητές που ορίζονται μέσα στη μέθοδο ονομάζονται local variables.
ΕΙΣΗΓΗΤΗΣ
Μιχάλης Κασάπογλου
Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.