A C# enum típusa névvel ellátott állandók rögzített halmazát jelöli (ez a felsorolás). Legfőbb célja, hogy típusbiztos módot adjon a numerikus állandókkal való munkához, és hogy a lehetséges értékeket egy előre meghatározott halmazra korlátozza. Egy egyszerű felsorolás így definiálható:
enum Season
{
Spring,
Summer,
Autumn,
Winter
}
Ha nem adod meg őket kifejezetten, a felsorolás tagjai automatikusan növekvő egész értékeket kapnak, az első érték pedig a nulla lesz. Az értékeket kifejezetten is megadhatod:
enum Answer
{
Maybe = 1,
Yes = 3,
No = 5
}
Ebben a feladatban naplósorokkal fogsz dolgozni.
Minden naplósor egy string, amelynek formátuma a következő: "[<LVL>]: <MESSAGE>".
A különböző naplószintek a következők:
TRC (trace)DBG (debug)INF (info)WRN (warning)ERR (error)FTL (fatal)Három részfeladatod van.
Definiálj egy LogLevel enumot, amelynek hat eleme van, a fenti naplószinteknek megfelelően.
TraceDebugInfoWarningErrorFatalEzután valósítsd meg a (statikus) LogLine.ParseLogLevel() metódust, amely értelmezi egy naplósor naplószintjét:
LogLine.ParseLogLevel("[INF]: File deleted")
// => LogLevel.Info
Sajnos időnként előfordul, hogy egyes naplósorok naplószintje ismeretlen. Hogy ezeket a naplósorokat szépen kezelni tudd, adj hozzá egy Unknown elemet a LogLevel enumhoz, amelyet ismeretlen naplószint értelmezésekor kell visszaadni:
LogLine.ParseLogLevel("[XYZ]: Overly specific, out of context message")
// => LogLevel.Unknown
A naplósorok naplószintje meglehetősen hosszú. Hogy csökkentsük a naplósorok tárolásához szükséges lemezterületet, kifejlesztettek egy rövid formátumot: "[<ENCODED_LEVEL>]:<MESSAGE>".
A kódolt naplószint egyszerű megfeleltetés: minden naplószinthez egy szám tartozik:
Unknown - 0
Trace - 1
Debug - 2
Info - 4
Warning - 5
Error - 6
Fatal - 42
Valósítsd meg a (statikus) LogLine.OutputForShortLog() metódust, amely ki tudja írni a lerövidített naplósor-formátumot:
LogLine.OutputForShortLog(LogLevel.Error, "Stack overflow")
// => "6:Stack overflow"
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.