返回不工作

时间:2017-01-04 19:10:18

标签: c# return

我不明白为什么我无法从函数studentinformation访问getstudentinformation。这是代码:

static void Main(string[] args)
{
    getstudentinformation();
    string firstname = studentinformation[0];
}

static Array getstudentinformation()
{
    Console.WriteLine("enter the student's first name: ");
    string firstname = Console.ReadLine();
    Console.WriteLine("enter the student's last name");
    string lastname = Console.ReadLine();
    Console.WriteLine("enter student's gender");
    string gender = Console.ReadLine();
    string[] studentinformation = { firstname, lastname, gender };
    return studentinformation;
}

Visual Studio无法识别数组,当我尝试构建代码时,会出现无法识别 studentinformation 的错误。

2 个答案:

答案 0 :(得分:5)

你的代码错了。试试这个:

static void Main(string[] args)
    {
        string[] studentInformation = getstudentinformation();
        string firstname = studentinformation[0];
    }
    static string[] getstudentinformation()
    {
        Console.WriteLine("enter the student's first name: ");
        string firstname = Console.ReadLine();
        Console.WriteLine("enter the student's last name");
        string lastname = Console.ReadLine();
        Console.WriteLine("enter student's gender");
        string gender = Console.ReadLine();
        string[] studentinformation = { firstname, lastname, gender };
        return studentinformation;
    }

您没有将getstudentinformation的结果分配给任何变量,并且由于您尝试访问的变量在另一个范围内声明,因此您无法访问它。

答案 1 :(得分:3)

你的方法没问题,错误的是你如何使用它。这样做:

var firstname = getstudentinformation().GetValue(0);

但我建议不要使用这个Array类,并按照NicoRiff提出的方式进行,其中包括:

static string[] getstudentinformation()

以及在main中的用法:

var firstname = getstudentinformation()[0];
您使用的

Array类是每个数组的基类(string[]也是如此),因此您的字符串数组是Array,但不是每个Array都是字符串数组,你可以在这里投射一个方向,但不是另一个方向,更多关于它:

https://msdn.microsoft.com/library/system.array(v=vs.110).aspx