【发布时间】:2015-10-14 06:47:07
【问题描述】:
如果这是一个愚蠢的问题,我很抱歉,但作为编码的初学者,我发现很难记住我创建的变量的限制/界限。我正在尝试在下面的 GetLetters() 方法中创建一个临时数组,但我稍后需要在 EstimateGrade() 方法中访问此信息,以便根据用户“估计成绩”他们的名字。
我收到“当前上下文中不存在名称‘threeLetters’”的错误消息。
有没有办法在不创建公共数组的情况下访问threeLetters 数组。
public int[] GetLetters(String userName)
{
//Creating an array that will hold the 3 values that determine grade
int[] threeLetters = new int[3];
char firstLetter = userName[0];
threeLetters[0] = userName[0];
char thirdLetter = userName[2];
threeLetters[1] = userName[2];
char fifthLetter = userName[4];
threeLetters[2] = userName[4];
if(userName.Length > 5)
{
threeLetters = new int[0];
}
return threeLetters;
}
public int EstimateGrade(int[] grade)
{
int sum = (threeLetters[0] + threeLetters[1] + threeLetters[2]) * 85;
int result = sum % 101;
return result;
}
【问题讨论】:
-
是的。如果您查看 EstimateGrade 方法,您提供的参数没有在该方法中使用,并且正在使用的参数是“threeLetters”,因为它没有在此处声明,所以无法访问。如果您在参数中声明它,您将能够使用它。请记住,当您使用 EstimateGrade 方法并希望从“GetLetters”中获取名称时,您必须将“GetLetters”方法的返回值传递给 EstimateGrade 方法。例如EstimateGrade(GetLetters(用户名));我希望这是有道理的。
-
@GrantWinney 谢谢 :)
-
@SorrelVesper 是的,这是有道理的,而且帮助很大!你居然回答了我的第二个问题哈哈。
标签: c# arrays temporary-objects