0

我在 C++ 中练习过。它是 8-Queens 的解决方案,输出所有 92 种可能的解决方案。

C++ 代码示例:是什么让这个循环如此多次?

然后我用 C# 编写了它。在这里,但最后我有一个错误。

                int[,] state = new int[8, 8];
                solve_state(state, 0); // Error: an object reference is required for non-//static field,method
            }
        }
    }
}
4

2 回答 2

3

尝试将solve_state方法声明为静态。

       // ↓
private static void solve_state(int[,] state, int count)
{
    // method implementation here
}
于 2013-12-23T22:19:01.350 回答
3

看起来您将 声明solve_state为实例(即非静态)方法。但是,如果不引用父类的实例,就不能调用实例方法。相反,将solve_state方法设为静态,如下所示:

public class Program
{
    public static void Main(string[] args)
    {
        ...
        int[,] state = new int[8, 8];
        solve_state(state, 0); 
        ...
    }

    private static void solve_state(int[,] state, int x)
    {
        ...
    }
}

延伸阅读

于 2013-12-23T22:19:18.423 回答