其他类是否可以在不使用实例化的情况下访问属性类

本文关键字:实例化 情况下 访问 属性 是否 其他 | 更新日期: 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

相关文章: