Enum ist immer sparender wie wenn man alles einzeln macht auserdem hast du mit enum nehr und einfachere möglichkeiten
ENum und sparender?
Ich glaub du weißt nicht wo von du sprichst 
Man sagt enums sind schneller als PVars
Man sieht enums Sparen Recourcen: Statt 100 mal ein new name new password new lp nur PlayerInfo
Enum ist eine Struktur und keine Form von Variablen, somit hast du automatisch unrecht.
Dazu solltest du die Arraygrösse nur so einstellen das diese nicht übersteht.
Und was machen enums?
Wie schon von mir erwähnt stellen sie eine Struktur dar.
ich versuchs mal einfach zu erklären, vielleicht schreib ich nachher mal ein tutorial darüber.
enum Struk
{
Nico,
Wiss,
Weiss,
Es[5],
Nicht
}// Das ist jetzt keine Anspielung o.ä. ich hab das einfach nur kopiert :D
So jetzt haben wir unsere Struktur, die im Grunde auch als Präprozessor, genauer Konstante, dient.
Diese hat einen Wert von 9 bzw. "Struk" hat den Wert 9.
Somit können wir sie mit 0 - 8 ansprechen wie wir lustig sind ohne die Namen nutzen zu "müssen".
Gut kommen wir erstmal dazu, warum es überhaupt einen Wert von 9 hat, obwohl da 5 Variablen/Namen stehen.
Der Array "Es[5]" wird auch mit gezählt und hat 5 Werte.
Nico = 0
Wiss = 1
Weiss = 2
Es = 3 - 7
Nicht = 8
Wenn wir jetzt die dazugehörige Variable Initialisieren, erstellen wir automatisch einen Array.
I.d.R. wird er 2 Dimensional gehandelt.
Ich mach hier nur einen ein Dimensionalen
new Var[Struk];
Die Deklaration kann überall stattfinden, ob in einer Funktion/Callback oder außerhalb von Funktionen.
In der Theorie steht hier aber new Var[9];
Grundsätzlich falsch, aber eigentlich auch nicht 
Denn wir können den Array via
Var[2] = 6;
nicht ansprechen.
Man würde einen Tag Mismatch bekommen.
Nun kommt der Strukturen-/Enumname zum einsatz
Var[Struk:2] = 6; ist also möglich.
Was ich euch damit sagen will, ist:
Enums sind KEINE Variablen, sie sind Auflistungen von Konstanten 