在两个类之间共享一个变量

时间:2015-03-05 15:20:05

标签: c# visual-studio-2010 variables

我只在一个项目中有两个不同的.cs窗口。每个人都运行我的程序的不同部分。但现在我需要在Form.cs.中使用mainwindow.cs的变量(i)。这个变量一直在变化。 我该怎么办?

MAINWINDOW.CS

   namespace samples
   {
     using System.IO;
     ........
     public partial class MainWindow : Window
       {
       float i;     
       }
    }   

Form1.cs的

    namespace samples
    {
    public partial class Form1 : Form
    {
        public Form1()
        {
        InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        ....
        chart1.Series["Pakistan"].Points.AddXY(i, j);
        }
    }
    }

2 个答案:

答案 0 :(得分:2)

如果你没有像你所做的那样声明你的变量而没有访问修饰符,那么它是隐式的private,因此只能在声明它的类中访问(在这种情况下为MainWindow)。您可以添加访问修饰符:

internal float i;

这样您就可以从程序集中的其他类访问i,例如Form1

有关访问修饰符的更多信息,请参阅MSDN:https://msdn.microsoft.com/en-us/library/wxh6fsc7.aspx

你应该几乎不要在类之外公开像i这样的字段;相反,你想要做的是使用一个属性:

private float i;

public float I
{
    get { return i; }
    set { i = value; }
}

更好的是,您可以使用自动实现的属性,因此您甚至不需要具有支持字段(i):

public float I { get; set; }

有很多理由说明为什么暴露属性而不是字段更好。 Here is one source on the topic(它以VB为中心,但理论应该是相同的)。

附录:请考虑适当的变量命名约定。 i不是变量的好名称。

答案 1 :(得分:0)

如果你不提及,你的默认访问修饰符是私有的。公开

public float i {get; set;}