Η C# είναι μια στατικά τυποποιημένη γλώσσα, που σημαίνει ότι τα πάντα έχουν έναν τύπο κατά τη μεταγλώττιση. Η ανάθεση μιας τιμής σε ένα όνομα ονομάζεται ορισμός μεταβλητής. Μια μεταβλητή μπορεί να οριστεί είτε δηλώνοντας ρητά τον τύπο της, είτε αφήνοντας τον μεταγλωττιστή της C# να συμπεράνει τον τύπο της με βάση την τιμή που της ανατίθεται (κάτι που είναι γνωστό ως εξαγωγή τύπου). Επομένως, οι παρακάτω δύο ορισμοί μεταβλητών είναι ισοδύναμοι:
int explicitVar = 10; // Explicitly typed
var implicitVar = 10; // Implicitly typed
Η ενημέρωση της τιμής μιας μεταβλητής γίνεται μέσω του τελεστή =. Μόλις οριστεί, ο τύπος μιας μεταβλητής δεν μπορεί ποτέ να αλλάξει.
var count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning different type
// count = false;
Η C# είναι μια αντικειμενοστρεφής γλώσσα και απαιτεί όλες οι συναρτήσεις να ορίζονται μέσα σε μια κλάση. Η λέξη-κλειδί class χρησιμοποιείται για τον ορισμό μιας κλάσης. Τα αντικείμενα (ή στιγμιότυπα) δημιουργούνται με τη χρήση της λέξης-κλειδιού new.
class Calculator
{
// ...
}
var calculator = new Calculator();
Μια συνάρτηση μέσα σε μια κλάση ονομάζεται μέθοδος. Κάθε μέθοδος μπορεί να έχει μηδέν ή περισσότερες παραμέτρους. Όλες οι παράμετροι πρέπει να έχουν ρητά δηλωμένο τύπο, δεν υπάρχει εξαγωγή τύπου για τις παραμέτρους. Παρομοίως, ο τύπος επιστροφής πρέπει επίσης να δηλώνεται ρητά. Οι τιμές επιστρέφονται από τις μεθόδους με τη λέξη-κλειδί return. Για να μπορεί μια μέθοδος να καλείται από κώδικα σε άλλα αρχεία, πρέπει να προστεθεί ο τροποποιητής πρόσβασης public.
class Calculator
{
public int Add(int x, int y)
{
return x + y;
}
}
Οι μέθοδοι καλούνται χρησιμοποιώντας τη σύνταξη με τελεία (.) πάνω σε ένα στιγμιότυπο, καθορίζοντας το όνομα της μεθόδου που θέλεις να καλέσεις και περνώντας ορίσματα για κάθε παράμετρο της μεθόδου. Τα ορίσματα μπορούν προαιρετικά να καθορίζουν το όνομα της αντίστοιχης παραμέτρου.
var calculator = new Calculator();
var sum_v1 = calculator.Add(1, 2);
var sum_v2 = calculator.Add(x: 1, y: 2);
Η εμβέλεια στη C# ορίζεται ανάμεσα στους χαρακτήρες { και }.
Η C# υποστηρίζει δύο τύπους σχολίων. Τα σχόλια μονής γραμμής προηγούνται από // και τα σχόλια πολλαπλών γραμμών τοποθετούνται ανάμεσα στα /* και */.
Η κοπέλα του Lucian είναι καθ' οδόν για το σπίτι και εκείνος δεν έχει μαγειρέψει το δείπνο της επετείου τους!
Σε αυτή την άσκηση, θα γράψεις λίγο κώδικα για να βοηθήσεις τον Lucian να μαγειρέψει εξαίσια λαζάνια από το αγαπημένο του βιβλίο μαγειρικής.
Έχεις τέσσερις εργασίες, όλες σχετικές με τον χρόνο που χρειάζεται για το μαγείρεμα των λαζανιών.
Όρισε τη μέθοδο Lasagna.ExpectedMinutesInOven() που δεν παίρνει καμία παράμετρο και επιστρέφει πόσα λεπτά πρέπει να είναι τα λαζάνια στο φούρνο. Σύμφωνα με το βιβλίο μαγειρικής, ο αναμενόμενος χρόνος στο φούρνο σε λεπτά είναι 40:
var lasagna = new Lasagna();
lasagna.ExpectedMinutesInOven();
// => 40
Όρισε τη μέθοδο Lasagna.RemainingMinutesInOven() που παίρνει ως παράμετρο τα πραγματικά λεπτά που τα λαζάνια βρίσκονται στο φούρνο και επιστρέφει πόσα λεπτά πρέπει ακόμη να παραμείνουν τα λαζάνια στο φούρνο, με βάση τον αναμενόμενο χρόνο στο φούρνο σε λεπτά από την προηγούμενη εργασία.
var lasagna = new Lasagna();
lasagna.RemainingMinutesInOven(30);
// => 10
Όρισε τη μέθοδο Lasagna.PreparationTimeInMinutes() που παίρνει ως παράμετρο τον αριθμό των στρώσεων που πρόσθεσες στα λαζάνια και επιστρέφει πόσα λεπτά χρειάστηκες για την προετοιμασία των λαζανιών, υποθέτοντας ότι κάθε στρώση σου παίρνει 2 λεπτά για να την ετοιμάσεις.
var lasagna = new Lasagna();
lasagna.PreparationTimeInMinutes(2);
// => 4
Όρισε τη μέθοδο Lasagna.ElapsedTimeInMinutes() που παίρνει δύο παραμέτρους: η πρώτη παράμετρος είναι ο αριθμός των στρώσεων που πρόσθεσες στα λαζάνια, και η δεύτερη παράμετρος είναι ο αριθμός των λεπτών που τα λαζάνια βρίσκονται στο φούρνο. Η συνάρτηση πρέπει να επιστρέφει πόσα λεπτά έχεις δουλέψει για το μαγείρεμα των λαζανιών, που είναι το άθροισμα του χρόνου προετοιμασίας σε λεπτά και του χρόνου σε λεπτά που τα λαζάνια έχουν περάσει στο φούρνο αυτή τη στιγμή.
var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.