Expressions (Εκφράσεις) και Operators (Τελεστές) στην C#
Τι Είναι οι Expressions (Εκφράσεις);
Σκέψου μια έκφραση σαν μια συνταγή που χρειάζεται κάποια συστατικά για να φτιάξει ένα αποτέλεσμα. Για παράδειγμα, αν έχεις δύο μήλα και θέλεις να τα συνδυάσεις με τρία μήλα, η συνταγή σου είναι η πρόσθεση των δύο αριθμών. Έτσι, η έκφραση είναι το σύνολο των συστατικών (ή αλλιώς, των μεταβλητών και των τελεστών) που ενώνεις για να πάρεις ένα αποτέλεσμα.
Για παράδειγμα:
5 + 3
είναι μια έκφραση που προσθέτει 5 και 3 για να δώσει το αποτέλεσμα 8.10 * 2
είναι μια έκφραση που πολλαπλασιάζει 10 με 2 για να δώσει το αποτέλεσμα 20.
Τι Είναι οι Operators (Τελεστές);
Οι τελεστές είναι τα εργαλεία που χρησιμοποιούμε για να φτιάξουμε τις εκφράσεις μας. Σκέψου τους σαν τους βοηθούς στη συνταγή σου που κάνουν τη δουλειά, όπως η πρόσθεση, η αφαίρεση, η πολλαπλασία και η διαίρεση.
Ας δούμε μερικούς βασικούς τελεστές στην C#:
- Πρόσθεση (+): Συνδυάζει δύο αριθμούς για να φτιάξει ένα νέο αριθμό.
- Παράδειγμα:
5 + 3
δίνει 8.
- Παράδειγμα:
- Αφαίρεση (-): Αφαιρεί ένα αριθμό από έναν άλλο.
- Παράδειγμα:
10 - 4
δίνει 6.
- Παράδειγμα:
- Πολλαπλασιασμός (*): Πολλαπλασιάζει δύο αριθμούς.
- Παράδειγμα:
4 * 3
δίνει 12.
- Παράδειγμα:
- Διαίρεση (/): Διαιρεί έναν αριθμό με έναν άλλο.
- Παράδειγμα:
12 / 3
δίνει 4.
- Παράδειγμα:
- Υπολοίπο (%): Δίνει το υπόλοιπο μιας διαίρεσης.
- Παράδειγμα:
10 % 3
δίνει 1 (γιατί 10 χωρίζεται σε 3, και το υπόλοιπο είναι 1).
- Παράδειγμα:
Παράδειγμα Κώδικα
Ας δούμε έναν απλό κώδικα στην C# που χρησιμοποιεί εκφράσεις και τελεστές:
using System;
class Program
{
static void Main(string[] args)
{
// Χρησιμοποιούμε τελεστές για να φτιάξουμε εκφράσεις
int a = 10;
int b = 5;
// Εκφράσεις με τελεστές
int sum = a + b; // 10 + 5 = 15
int difference = a - b; // 10 - 5 = 5
int product = a * b; // 10 * 5 = 50
int quotient = a / b; // 10 / 5 = 2
int remainder = a % b; // 10 % 5 = 0
// Εκτύπωση των αποτελεσμάτων
Console.WriteLine("Άθροισμα: " + sum);
Console.WriteLine("Διαφορά: " + difference);
Console.WriteLine("Πολλαπλασιασμός: " + product);
Console.WriteLine("Διαίρεση: " + quotient);
Console.WriteLine("Υπόλοιπο: " + remainder);
}
}
Τι Συμβαίνει Εδώ;
- Μεταβλητές
a
καιb
: Δηλώνουμε δύο αριθμούς, 10 και 5.
- Χρησιμοποιούμε Τελεστές: Δημιουργούμε διάφορες εκφράσεις με τους τελεστές (+, -, *, /, %) για να υπολογίσουμε το άθροισμα, τη διαφορά, τον πολλαπλασιασμό, τη διαίρεση και το υπόλοιπο.
- Εκτύπωση Αποτελεσμάτων: Εκτυπώνουμε τα αποτελέσματα των εκφράσεων στην οθόνη.
Συνοψίζοντας:
- Εκφράσεις είναι συνδυασμοί μεταβλητών και τελεστών που μας δίνουν ένα αποτέλεσμα.
- Τελεστές είναι τα σύμβολα που χρησιμοποιούμε για να δημιουργήσουμε τις εκφράσεις μας, όπως
+
,-
,*
,/
και%
.
Σίγουρα, υπάρχουν μερικά επιπλέον πράγματα που μπορούμε να εξετάσουμε σχετικά με τις εκφράσεις και τους τελεστές στην C#. Ας δούμε μερικές επιπλέον πτυχές:
1. Σύνθετοι Τελεστές
Αυτοί οι τελεστές συνδυάζουν άλλους τελεστές με μια απλή σύνταξη. Είναι συνήθως συντομεύσεις για συχνές πράξεις.
- Αναθέσεις με Άθροισμα (
+=
): Προσθέτει μια τιμή σε μια μεταβλητή και αποθηκεύει το αποτέλεσμα πίσω στην ίδια μεταβλητή.
- Παράδειγμα:
int a = 10; a += 5;
// Ισοδύναμο με a = a + 5;
// Τώρα a είναι 15
Αναθέσεις με Πολλαπλασιασμό (*=
):
Πολλαπλασιάζει μια μεταβλητή με μια τιμή και αποθηκεύει το αποτέλεσμα πίσω στην ίδια μεταβλητή.
- Παράδειγμα:
int b = 4;
b *= 3; // Ισοδύναμο με b = b * 3;
// Τώρα b είναι 12
2. Σχόλια
Τα σχόλια είναι χρήσιμα για να προσθέτεις επεξηγήσεις στον κώδικα σου. Δεν επηρεάζουν την εκτέλεση του κώδικα αλλά κάνουν τον κώδικα πιο κατανοητό για άλλους (ή για εσένα σε μεταγενέστερη φάση).
- Μονογραμμικά Σχόλια: Ξεκινούν με
//
και εκτείνονται μέχρι το τέλος της γραμμής.
- Παράδειγμα:
int x = 5; // Εδώ αρχικοποιούμε την μεταβλητή x με την τιμή 5
Πολυγραμμικά Σχόλια: Ξεκινούν με /*
και τελειώνουν με */
. Μπορούν να εκτείνονται σε πολλές γραμμές.
- Παράδειγμα:
/*
Αυτό είναι ένα πολυγραμμικό σχόλιο
που μπορεί να καταλάβει πολλές γραμμές.
*/
int y = 10;
3. Τελεστές Σύγκρισης
Αυτοί οι τελεστές χρησιμοποιούνται για να συγκρίνουν δύο τιμές και επιστρέφουν true
ή false
.
- Ίσο (
==
): Επιστρέφειtrue
αν οι δύο τιμές είναι ίδιες.- Παράδειγμα:
int x = 10;
int y = 10;
bool result = (x == y); // Επιστρέφει true
Διαφορετικό (!=
): Επιστρέφει true
αν οι δύο τιμές δεν είναι ίδιες.
- Παράδειγμα:
int a = 5;
int b = 10;
bool result = (a != b); // Επιστρέφει true
Μεγαλύτερο Από (>): Επιστρέφει true αν η πρώτη τιμή είναι μεγαλύτερη από τη δεύτερη.
Παράδειγμα:
int x = 7;
int y = 5;
bool result = (x > y); // Επιστρέφει true
Μικρότερο Από (<): Επιστρέφει true αν η πρώτη τιμή είναι μικρότερη από τη δεύτερη.
Παράδειγμα:
int x = 3;
int y = 8;
bool result = (x < y); // Επιστρέφει true
4. Λογικοί Τελεστές
Οι λογικοί τελεστές χρησιμοποιούνται για να συνδυάσουν ή να τροποποιήσουν λογικές συνθήκες.
- Και (
&&
): Επιστρέφειtrue
αν και οι δύο συνθήκες είναι αληθείς.- Παράδειγμα:
bool a = true;
bool b = false;
bool result = (a && b); // Επιστρέφει false
Ή (||): Επιστρέφει true αν τουλάχιστον μία από τις συνθήκες είναι αληθής.
Παράδειγμα:
bool a = true;
bool b = false;
bool result = (a || b); // Επιστρέφει true
Όχι (!): Επιστρέφει το αντίθετο της λογικής τιμής.
Παράδειγμα:
bool a = true;
bool result = !a; // Επιστρέφει false
5. Τελεστές Αυξημένης / Μειωμένης Τιμής
Αυτοί οι τελεστές είναι χρήσιμοι για να αυξάνεις ή να μειώνεις την τιμή μιας μεταβλητής κατά μία μονάδα.
- Αύξηση (
++
): Αυξάνει την τιμή μιας μεταβλητής κατά 1.- Παράδειγμα:
int x = 5;
x++; // Ισοδύναμο με x = x + 1; Τώρα x είναι 6
Μείωση (--): Μειώνει την τιμή μιας μεταβλητής κατά 1.
Παράδειγμα:
int y = 10;
y--; // Ισοδύναμο με y = y - 1; Τώρα y είναι 9
- Name of
Τι είναι ο τελεστής `nameof` στην C#;
Ο τελεστής `nameof` είναι ένα ειδικό εργαλείο που προστέθηκε στη γλώσσα C# από την έκδοση 6.0 και μετά. Χρησιμοποιείται για να πάρει το όνομα μιας μεταβλητής, μιας κλάσης, μιας μεθόδου ή ενός άλλου μέλους και να το επιστρέψει ως κείμενο (string).
Φαντάσου ότι έχεις ένα κουτί και θέλεις να ξέρεις το όνομά του χωρίς να χρειάζεται να το γράφεις εσύ κάθε φορά. Το `nameof` στην C# είναι ένας τρόπος να ζητάς από τον υπολογιστή να σου πει το όνομα μιας μεταβλητής, μιας κλάσης, ή μιας μεθόδου, χωρίς να το γράφεις εσύ απευθείας.
Γιατί είναι χρήσιμο το `nameof`;
1. **Λιγότερα λάθη**: Αν αλλάξεις το όνομα μιας μεταβλητής και έχεις χρησιμοποιήσει το `nameof`, δεν χρειάζεται να το αλλάξεις παντού στον κώδικα σου.
2. **Ευκολία**: Ο κώδικας γίνεται πιο κατανοητός και εύκολος στη συντήρηση.
Πώς λειτουργεί;
Όταν χρησιμοποιείς το `nameof`, η C# κοιτάζει τον κώδικα και επιστρέφει το όνομα του πράγματος που του δίνεις.
Ας το δούμε με ένα παράδειγμα:
class Example
{
public string Name { get; set; }
public void ShowName()
{
Console.WriteLine(nameof(Name)); // Αυτό θα τυπώσει “Name”
}
}
Παράδειγμα με περισσότερη ανάλυση Χωρίς `nameof`
class Program
{
static void Main()
{
string name = “Γιάννης”;
Console.WriteLine(“Το όνομα της μεταβλητής είναι name”); // Γράφουμε το όνομα χειροκίνητα
}
}
Παράδειγμα με περισσότερη ανάλυση Με `nameof`
class Program
{
static void Main()
{
string name = “Γιάννης”;
Console.WriteLine($”Το όνομα της μεταβλητής είναι {nameof(name)}”); // Χρησιμοποιούμε το nameof για να πάρουμε το όνομα
}
}
Πλεονεκτήματα του `nameof`
1. Ακρίβεια: Αν αλλάξεις το όνομα της μεταβλητής `name` σε κάτι άλλο, το `nameof(name)` θα ενημερωθεί αυτόματα.
2. Ασφάλεια: Βοηθά στην αποφυγή λαθών από τυπογραφικά λάθη.
3. Καθαρότητα: Κάνει τον κώδικα πιο εύκολο στην ανάγνωση και συντήρηση.
Επιπλ΄έον παράδειγμα Name Of
public class giveAnExample
{
publlic int number1 {get; set;}
public int number2 {get; set;}
public double number3 {get; set;}
public double number4 {get; set;}
public giveAnExample(int number1, int number2, double number3, double number4))
{
this.number1=number1;
this.number2=number2;
this.number3=number3;
this.number4=number4;
}
public static void sum(int number1, int number2, double number3, double number4)
{
sum= number1+number1;
sumDouble =number3+ number4;
sumMinx= number1+number3;
sumMinx2= number2+number4;
}
public static void public static void Main(string[] args)
{
giveAnExample sum1= new giveAnExample(7,4,132.231,534543.353)
giveAnExample.nameof(sum)
giveAnExample.nameof(sumDouble)
giveAnExample.nameof(sumMinx)
giveAnExample.nameof(sumMinx2)
Console.WriteLine();
Console.ReadKey();
}
}
Σύνοψη
– `nameof` είναι ένας τελεστής, όχι μεταβλητή ή μέθοδος.
– Χρησιμοποιείται για να πάρει το όνομα μιας μεταβλητής, κλάσης, μεθόδου κ.λπ. και να το επιστρέψει ως κείμενο.
– Παραδείγματα χρήσης: Μηνύματα λάθους, καταγραφή, αντικατάσταση τιμών στον κώδικα.