Διαδρομές
/
C#
C#
/
Ασκήσεις
/
Ανάλυση καταγραφών
Ανάλυση καταγραφών

Ανάλυση καταγραφών

Άσκηση εκμάθησης

Εισαγωγή

Μέθοδοι επέκτασης

Οι μέθοδοι επέκτασης σου επιτρέπουν να προσθέσεις μεθόδους σε υπάρχοντες τύπους χωρίς να δημιουργήσεις νέο παράγωγο τύπο, χωρίς επαναμεταγλώττιση ή άλλη τροποποίηση του αρχικού τύπου. Ορίζονται ως στατικές μέθοδοι, αλλά καλούνται με τη σύνταξη μεθόδων στιγμιοτύπου. Πριν από την πρώτη τους παράμετρο μπαίνει ο τροποποιητής this, ο οποίος προσδιορίζει σε ποιον τύπο ενεργεί η μέθοδος, ενώ οι μέθοδοι αποκτούν εμβέλεια σε επίπεδο χώρου ονομάτων.

public static int WordCount(this string str)
{
    return str.Split().Length;
}

"Hello World".WordCount();
// => 2

Οδηγίες

Σε αυτή την άσκηση θα επεξεργάζεσαι γραμμές καταγραφής.

Κάθε γραμμή καταγραφής είναι μια συμβολοσειρά με την εξής μορφή: "[<LEVEL>]: <MESSAGE>".

Υπάρχουν τρία διαφορετικά επίπεδα καταγραφής:

  • INFO
  • WARNING
  • ERROR

Έχεις αρκετές εργασίες, καθεμία από τις οποίες θα παίρνει μια γραμμή καταγραφής και θα σου ζητά να κάνεις κάτι με αυτήν.

1. Να επιτρέπεται η ανάκτηση της συμβολοσειράς μετά από μια συγκεκριμένη υποσυμβολοσειρά

Κοιτάζοντας τις καταγραφές του προηγούμενου μήνα, βλέπεις ότι το μήνυμα δοκιμής βρίσκεται πάντα μετά από μια συγκεκριμένη υποσυμβολοσειρά. Καθώς προβλέπεις ότι θα χρειαστεί να εξαγάγεις το μήνυμα δοκιμής κάποια στιγμή στο άμεσο μέλλον, αποφασίζεις να δημιουργήσεις μια βοηθητική μέθοδο που θα σε βοηθήσει σε αυτό.

Υλοποίησε τη (static) μέθοδο επέκτασης LogAnalysis.SubstringAfter(), που δέχεται ένα διαχωριστικό συμβολοσειράς και επιστρέφει την υποσυμβολοσειρά μετά το διαχωριστικό.

var log = "[INFO]: File Deleted.";
log.SubstringAfter(": "); // => returns "File Deleted."

2. Να επιτρέπεται η ανάκτηση της συμβολοσειράς ανάμεσα σε δύο υποσυμβολοσειρές

Σε περαιτέρω έλεγχο, βλέπεις ότι το επίπεδο καταγραφής βρίσκεται πάντα ανάμεσα σε αγκύλες ([ και ]). Καθώς επίσης προβλέπεις ότι θα χρειαστεί να εξαγάγεις το επίπεδο καταγραφής κάποια στιγμή στο άμεσο μέλλον, αποφασίζεις να δημιουργήσεις μια άλλη βοηθητική μέθοδο που θα σε βοηθήσει σε αυτό.

Υλοποίησε τη (static) μέθοδο επέκτασης LogAnalysis.SubstringBetween(), που δέχεται δύο διαχωριστικά συμβολοσειράς και επιστρέφει την υποσυμβολοσειρά που βρίσκεται ανάμεσα στα δύο διαχωριστικά.

var log = "[INFO]: File Deleted.";
log.SubstringBetween("[", "]"); // => returns "INFO"

3. Ανάλυση μηνύματος σε μια καταγραφή

Υλοποίησε τη (static) μέθοδο επέκτασης LogAnalysis.Message() για να επιστρέφει το μήνυμα που περιέχεται σε μια καταγραφή.

var log = "[ERROR]: Missing ; on line 20.";
log.Message(); // => returns "Missing ; on line 20."

4. Ανάλυση επιπέδου καταγραφής σε μια καταγραφή

Υλοποίησε τη (static) μέθοδο επέκτασης LogAnalysis.LogLevel() για να επιστρέφει το επίπεδο καταγραφής μιας καταγραφής.

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ανάλυση καταγραφών;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.