如何在递归方法中检查相同变量的值?

How to check value of same variable in recursion Method?

我有一个变量,我想用递归方法检查它。

使其可见:

    private static void myMethod(/*variables*/){
        while (/* condition */) {
            foreach (/* condition */) {
                if (/* condition */) {
                    foreach (/*condition */) {
                        myMethod(/*variables*/);
                            }
                } else {
                /* THIS IS THE PART I AM ASKING FOR:
                 The if statement should ask if the Variable is NOT the same as before.*/

                        if (myMethodVariable != myMethodVariable[from before]){
                        // stuff to do.
}

所以 myMethodVariable 有一个值,它是一个 char/string。我想检查这个值是否和以前一样,所以我可以检查重复项并立即打破循环。

有没有办法像 myMethodVariable['index'] 一样获取值?由于变量是 char/string,因此不能那样使用。

对不起我的英语。

您可以将变量作为参数传递给下一个调用:

private static void myMethod(/*variables*/, myMethodVariableFromBefore){
    while (/* condition */) {
        foreach (/* condition */) {
            if (/* condition */) {
                foreach (/*condition */) {
                    myMethod(/*variables*/, myMethodVariable);
                        }
            } else {
            /* THIS IS THE PART I AM ASKING FOR:
             The if statement should ask if the Variable is NOT the same as before.*/

                    if (myMethodVariable != myMethodVariableFromBefore){
                    // stuff to do.
}

一个解决方案是存储入口点给定的值,然后将其与新值进行比较。

void MyMethod(int pipo)
{
    var oldPipo = pipo;

    //...//
    pipo = SomethingClever();  // Or something with recursive call.
    //...//

    if (oldPipo == pipo)
    {
        // we are done.
    }
}