我无法让私有类中的成员可以从另一个私有类访问

时间:2015-11-19 04:53:09

标签: c# private member

    {
    public partial class form1 : Form
    {
        public form1()
        {
            InitializeComponent();
        }
        public Button ButtonName { get { return } }
        public static int initFaggleCount;

        private void button1_Click(object sender, EventArgs e)
        {
            int faggleCount = initFaggleCount++;
            string finalCalc = faggleCount.ToString();
            label1.Text = finalCalc;
            /*
            Console.WriteLine(faggleCount);
            Console.ReadLine();*/
        }
        private void button2_Click(object sender, EventArgs e)
        {
            /*TextWriter tw = new StreamWriter("SavedFaggleCount.txt");
            tw.WriteLine();
            tw.Close();*/
            Console.WriteLine(faggleCount);
            Console.ReadLine();
        }
    }
}

我希望可以从button2访问整数faggleCount,以便我可以从button2成功Console.WriteLine(fagleCount);。我是菜鸟,任何帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

而不是在方法体内声明局部变量,您可以声明实例变量,以便类的所有成员都可以访问它。

public partial class form1 : Form
{
    int faggleCount; //declare instance variable.
    public form1()
    {
        InitializeComponent();
    }
    public Button ButtonName { get { return } }
    public static int initFaggleCount;

    private void button1_Click(object sender, EventArgs e)
    {
        faggleCount = initFaggleCount++; //use instance variable
        string finalCalc = faggleCount.ToString();
        label1.Text = finalCalc;
        /*
        Console.WriteLine(faggleCount);
        Console.ReadLine();*/
    }
    private void button2_Click(object sender, EventArgs e)
    {
        /*TextWriter tw = new StreamWriter("SavedFaggleCount.txt");
        tw.WriteLine();
        tw.Close();*/
        Console.WriteLine(faggleCount); //use instance variable
        Console.ReadLine();
    }
}

答案 1 :(得分:0)

在您的代码中, faggleCount是方法的本地,即只有方法中的代码才能访问它。您需要做的是将变量移动到类级别。像这样:

public class form1 : Form {
    int faggleCount;
    //your other code here
}

如您所见,变量现在在类中,而不是在方法中。这样,类中的所有方法都可以访问它,甚至内部类也可以访问它!

这个问题在初学者中很常见。理解变量的范围非常困难。简而言之,可以在类中访问类中的变量,可以在方法中访问方法中的变量。