2012-12-14 57 views
0

我目前正在使用类和构造函数。我有一个名为current的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(); 

      } 

     } 

回答

1

问题出在您尝试拨打int current的范围(封装)中。

从您发布的代码,int current的定义在class ListForTrees。但是,您正试图访问它,而无需初始化ListForTrees类型的对象。

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

+0

初始化的树列表此questiosn被支到这个[ONE](http://stackoverflow.com/问题/ 13863114 /项目-IN-A-列表显示-位置的-/ 13863661#13863661)。它有完整的代码。不确定如何分支问题。 – CodingWonders90

0

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

此外我相信你的课堂设计是相当有缺陷的。我想你应该重新设计你的类,如:

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

然后你就可以在你的代码

相关问题