在我正在研究的WinForms应用程序中,我希望有一个属性类来存储项目中所有表单都可以访问的公共变量,以便根据需要存储和检索值。
过去我使用静态类来存储字符串和int值等,但这些在编码期间是固定的,在应用程序运行时不能更改。如果可能的话,我想以相同的方式使用属性类,这样我就可以读取和写入功能。
我必须在Form1.cs中创建属性类的实例,然后将其作为参数传递给其他表单的构造函数,以便它们访问属性类中的字段吗?
或者这可以在没有实例化的情况下完成吗?
答案 0 :(得分:4)
如果我理解正确 - 你不需要做任何不同的事情。 可以在运行时更改这些内容。
你可以:
static class ForAll
{
public static int i;
}
并使用它:
ForAll.i = 1;
答案 1 :(得分:1)
简单回答,是的,你必须立即发送课程 如果不立即使用类,则不能使用非静态属性或方法。
无论如何appconfig
听起来像是一个更好的数据库。
答案 2 :(得分:0)
我建议使用单例模式,而不是将类传递给每个表单。
using System;
public class Singleton
{
private static Singleton instance;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
这可确保您拥有相同的类实例,然后您可以与其他表单共享该类。如果你将类传递给其他形式,它可能会变得非常混乱。