C# 在两个类之间共享一个变量
我在一个项目中有两个不同的.cs窗口。每个人都运行我程序的不同部分。但是现在我需要在Form.cs中使用mainwindow.cs的一个变量(I)。这个变量一直在变化。 我怎么做 MAINWINDOW.CSC# 在两个类之间共享一个变量,c#,visual-studio-2010,variables,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; }
namespace samples
{
using System.IO;
........
public partial class MainWindow : Window
{
float i;
}
}
表格1.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);
}
}
}
如果您在没有访问修饰符的情况下声明了变量,那么它将隐式地
private
,因此只能在声明它的类中访问(MainWindow
)。可以添加访问修饰符:
internal float i;
这将允许您从程序集中的其他类访问i
,如Form1
有关访问修饰符的更多信息,请参见MSDN:
但是,您几乎不应该在类之外公开像i
这样的字段;相反,您要做的是使用属性:
private float i;
public float I
{
get { return i; }
set { i = value; }
}
更好的是,您可以使用一个自动实现的属性,这样您甚至不需要一个支持字段(i
):
公开属性而不是字段更好的原因有很多。(它以VB为中心,但理论应该是一样的)
附录:请考虑变量的适当命名约定。code>i不是变量的好名字。
如果不提及,默认的访问修饰符是私有的。公开public float i {get; set;}
通过全局修饰符ie
static
?将其设置为静态或将其传递给Form1的构造函数您可以在另一个表单中保留一个表单的引用。它们是两个独立的应用程序吗?MainWindow是否有Form1的实例?
public float i {get; set;}