c#console.readline语句'not working'在函数

时间:2016-05-02 13:46:55

标签: c# console-application

public static void EquipSlot1()
    {
        Console.WriteLine("Choose a weapon for slot 1:");
        Console.WriteLine("1. Sword");
        public int Slot1Choice = int.Parse(Console.ReadLine());
   }

在上面的代码中,我无法在console.readline语句之后放置'}'来关闭该函数。在第二个writeline语句之后出现一条红色波浪形线,当我在readline语句之后放置'}'时,它将关闭该类而不是函数。所以我认为由于某种原因,函数内部不允许使用readline函数。难道我做错了什么?另外,如果不允许使用readline语句,我可以在函数中使用哪些其他形式的输入?

2 个答案:

答案 0 :(得分:0)

这是因为方法上的公共访问修饰符。

在方法体内声明的变量具有方法的范围,不能公开。

用以下代码替换您的代码:

static int Slot1Choice;

public static void EquipSlot1()
{
    Console.WriteLine("Choose a weapon for slot 1:");
    Console.WriteLine("1. Sword");
    Slot1Choice = int.Parse(Console.ReadLine());
}

答案 1 :(得分:0)

正如您在标题中提到的,这不是Console.WriteLine的问题,错误原因是方法中的公共声明范围。如果我们在任何方法中声明变量意味着它的范围仅限于该特定方法,则不允许在方法内部使用此类公共声明。所以我们不允许重新定义公共变量的scope,所以它将如下所示:

public int Slot1Choice=0;
public static void EquipSlot1()
{
     Console.WriteLine("Choose a weapon for slot 1:");
     Console.WriteLine("1. Sword");
     Slot1Choice = int.Parse(Console.ReadLine());
}