我是初学者程序员我使用visual basic.net编写代码所以我想学习c#,可以帮助我解决这段代码 你好,这段代码有什么错误?
enum Day
{
Saturday, Sunday, Monday, Tuesday, Wednesday,Thursday, Friday
}
public static void ShowDay(Day CurrentDay) // Error
{
if (CurrentDay == Day.Friday)
Console.WriteLine("A vacation");
}
static void Main(string[] args)
{
Day X;
X = Day.Friday;
ShowDay(X);
ShowDay(Day.Friday);
}
答案 0 :(得分:4)
您应该将enum
公开。
public enum Day
{
Saturday, Sunday, Monday, Tuesday, Wednesday,Thursday, Friday
}
UPD :或者从public
方法移除ShowDay
。
答案 1 :(得分:2)
这是一个有效的.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);
}
问题是您的方法是公开的,但参数的变量类型不是 - 因此它被认为是“不太容易访问”。
<强>更新强>
我们的想法是access modifier必须对齐,有几个关键方案需要考虑。
在这种情况下,您省略了enum
声明中的访问修饰符 - 顶级类型为internal
,嵌套类型为private
。现在,当您将方法ShowDay(Day currentDay)
定义为public
时,这意味着它会向引用此类的任何人公开。问题在于,参数未公开,但您将其定义为参数。这有帮助吗?
但将enum
定义为public
并将方法定义为少于public
的任何内容都可以。
答案 2 :(得分:0)
您也可以通过将internal
放在其前面或简单地移除public
关键字来使您的方法成为内部方法。
static void ShowDay(Day CurrentDay) // No error
简单地发生此错误是因为相关类型和方法需要具有相同的访问修饰符。因此,要么将所有内容公开,要么将方法设为内部。