其他类是否可以在不使用实例化的情况下访问属性类
本文关键字:实例化 情况下 访问 属性 是否 其他 | 更新日期: 2023-09-27 18:25:15
在我正在开发的WinForms应用程序中,我希望有一个属性类来存储项目中所有表单都可以访问的公共变量,以便根据需要存储和检索值。
在过去,我曾使用静态类来存储字符串和int值等,但这些在编码过程中是固定的,在应用程序运行时不能更改。如果可能的话,我想以同样的方式使用属性类,这样我就可以读取和写入功能。
我必须在Form1.cs中创建一个属性类的实例,然后将其作为参数在其他窗体的构造函数中传递,以便它们访问属性类中的字段吗?
或者这可以在没有实例化的情况下完成吗?
如果我对你的理解正确,你不需要做任何不同的事情。您可以在跑步时更改这些设置。
你可以有:
static class ForAll
{
public static int i;
}
并使用它:
ForAll.i = 1;
简单的回答,是的,你必须发送类的即时消息
如果没有类的即时性,就不能使用非静态属性或方法。
无论如何,appconfig
听起来是一个更好的数据存储位置。
我建议使用singleton模式,而不是将类传递给每个表单。
using System;
public class Singleton
{
private static Singleton instance;
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
这样可以确保您拥有相同的类实例,然后可以与其他表单共享该类。如果你把这门课改成其他形式,它可能会变得很乱。
http://msdn.microsoft.com/en-us/library/ff650316.aspx