0

我目前正在使用类和构造函数。我在构造函数中有一个名为currentequals的 sint 变量0。现在,当我单击按钮时,我试图增加属性current,然后调用 GetNextTree 来显示。但是current++从按钮单击递增时,我收到此错误:does not exist in current context. 那么增加的正确方法是current什么?

public class fruit_trees
    {

    } 
public class ListForTrees
        {
    public int current;

    public fruit_trees GetNextTree()
            {
                current = 0;
                fruit_trees ft = first_tree;
                int i = 0;
                while (i != current)
                {
                    ft = ft.next_tree;
                    i++;

                }

                return ft;

            }


    }

private void ShowNextItem_Click(object sender, EventArgs e)
        {
            //Show Last Item

            fruit_trees obj = mainlist.GetNextTree();


            if (obj == null)
            {
                labelSpecificTree.Text = "No more trees!";
            }
            else
            {
               //error: current does not exist?
        current++
                labelSpecificTree.Text = obj.next_tree.GetTreeType.ToString();

            }   

        }
4

2 回答 2

1

问题出在您尝试调用的范围(封装)中int current

从您发布的代码中,int current定义在class ListForTrees. 但是,您试图在不初始化 ListForTrees 类型的对象的情况下访问它。

此外,您使用mainlist的也未在您发布的代码中定义。请发布您在代码中使用的项目的完整代码覆盖率。

于 2012-12-14T04:18:31.473 回答
0

您的current变量被封装在您的ListForTrees类中。由于此变量是一个实例变量,因此您需要创建一个新实例ListForTrees才能使用instance.variable语法访问此变量。

此外,我相信您的课程设计存在很大缺陷。我认为您应该重新设计您的课程,例如:

public class FruitTree
{
    public static int Current { get; set; }
    public FruitTree GetNextTree()
    {
        //your code here
    }
}

然后你可以在你的代码中初始化一个树列表

于 2012-12-14T04:18:33.220 回答