我不明白为什么我无法从函数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 的错误。
答案 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