我是编程新手,无法让这段代码工作。 fillPositive方法应该按数字顺序填充数字为1-n的大小为n的数组,但是当我尝试从main方法调用fillPositive时,我在编译时得到错误'当前上下文中不存在名称'fillPositive' 。
这是我的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SOFT140
{
class Program
{
static void Main(string[] args)
{
int[] taskOneArray = new int[15];
taskOneArray = fillPositive(15);
Console.WriteLine(taskOneArray);
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SOFT140
{
public class ArrayMethod
{
public static int[] fillPositive(int n)
{
int sum = 0; // Variable to hold element values
int[] a = new int[n];
for (int i = 0; i < a.Length; i++) // Iterate though all array elements adding one each time
{
a[i] = sum + 1;
sum++;
}
return a; // Return the array
}
}
}
我尝试用几种不同的方式初始化数组,看看是不是问题。但我仍然得到同样的错误。
int[] taskOneArray = fillPositive(15);
int[] taskOneArray = new int[fillPositive(15)];
非常感谢任何帮助。
编辑:当我调用这样的方法时:
taskOneArray = ArrayMethod.fillPositive(15);
我得到了同样的错误信息。 '名称ArrayMethod在当前上下文中不存在'
答案 0 :(得分:1)
你应该这样称呼它,因为fillPositive是ArrayMethod类中的静态方法。
static void Main(string[] args)
{
int[] taskOneArray = new int[15];
taskOneArray = ArrayMethod.fillPositive(15);
Console.WriteLine(taskOneArray);
Console.ReadKey();
}
您可能会将功能调用理解为访问您朋友的家。如果你必须去家乡外的朋友家,你需要先到他的家乡,然后到他的家。 在这种情况下 -
Main()方法就是你的家。
ArrayMethod是他的家乡&amp;
fillPositive()是他的家
答案 1 :(得分:0)
长话短说:你忘了使用课堂上的这个功能。
函数fillPositive存在于ArrayMethod类中,而Program类并不熟悉它。因此,您需要将调用到类中,以便从中获取相关方法。
这可以通过以下语法完成:
<Class name>.<Method>(<Parameters>)
或在您的情况下,而不是:
int[] taskOneArray = fillPositive(15);
此:
int[] taskOneArray = ArrayMethod.fillPositive(15);