Hier ist eine funktionierende .NET Fiddle.
public enum Day
{
Saturday,
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday
}
public static void ShowDay(Day CurrentDay)
{
if (CurrentDay == Day.Friday)
Console.WriteLine("A vacation");
}
public static void Main(string[] args)
{
Day X;
X = Day.Friday;
ShowDay(X);
ShowDay(Day.Friday);
}
Das Problem ist, dass Ihre Methode öffentlich war, noch die der Variablentyp des Parameters war nicht - als solche betrachtet wird „weniger zugänglich“.
aktualisieren
Die Idee ist, dass die access modifier ausrichten muss, gibt es mehrere Schlüsselszenarien zu berücksichtigen sind.
In diesem Fall haben Sie den Zugriffsmodifizierer auf der enum
Deklaration weggelassen - dies ist internal
für Top-Level-Typen und private
für verschachtelte Typen. Wenn Sie jetzt Ihre Methode ShowDay(Day currentDay)
als public
definieren, bedeutet dies, dass sie jedem offen steht, der auf diese Klasse verweist. Das Problem besteht darin, dass der Parameter nicht angezeigt wird, Sie ihn jedoch als Parameter definieren. Hilft das?
Aber es wäre in Ordnung für die enum
als public
definiert werden und die Methode als etwas weniger als public
definiert werden.
Willkommen zu Codierung und Stackoverflow - Sie sagen uns, kompiliert es? produziert es nicht, was ist der Fehler? Bitte lesen Sie http://www.stackoverflow/help/How-to-asl – BugFinder
Ist der Fehler hier 'ShowDay (X); 'oder hier' ShowDay (Day.Friday);'? –
public enum Tag { Samstag, Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag } –