我在C#Visual Studio中遇到以下错误,我无法解决:
“非静态字段”
需要对象引用我不知道它意味着什么,也不知道如何解决它。当然,我在网上查了一下,但没有发现任何与我下面的简单代码说话的内容。我想要做的就是从Main()成功调用以下内容:
int result = MaxPair(nums);
非常感谢提前。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MaxPairSpace
{
class Program
{
static int Main(string[] args)
{
int n = Int32.Parse( Console.ReadLine() );
string input = Console.ReadLine();
string[] split = input.Split(' ');
int length = split.Length;
int[] nums = new int[length];
for (int x = 0; x < length; x++)
{
nums[x] = Int32.Parse(split[x]);
}
int result = MaxPair(nums);
Console.WriteLine("{0}\n", result);
return 0;
}
public int MaxPair(int[] numbers)
{
int result = 0;
int n = numbers.Length;
for (int i = 0; i < n; ++i)
{
for (int j = i; j < n; ++j)
{
if (numbers[i] * numbers[j] > result)
{
result = numbers[i] * numbers[j];
}
}
}
return result;
}
}
}
答案 0 :(得分:1)
您无法直接在静态方法中访问非静态方法/ Variable / Property。要访问这些项,您需要创建相应类的实例,并通过该实例访问它们,您可以在静态方法中访问其他静态方法/ Variable / Property。如果此类项目属于不同的类,则可以通过其类名访问它们。也就是ClassName.Method()
。因此,更好的选择是更改方法签名,如下所示:
public static int MaxPair(int[] numbers)
{
// Code here
}