我有一个 WinForms 应用程序。在这个应用程序中,我有一些 Forms 和 Static 类,它们具有公共静态属性 和一些需要设置属性的公共静态方法,因为表单在这些方法上使用。
现在,如果我在第一个表单中设置此属性,那么当我在第二个表单上使用某些方法时会出现错误或该属性仍然设置(将第一个设置保存在第一个表单上)?
我有一个 WinForms 应用程序。在这个应用程序中,我有一些 Forms 和 Static 类,它们具有公共静态属性 和一些需要设置属性的公共静态方法,因为表单在这些方法上使用。
现在,如果我在第一个表单中设置此属性,那么当我在第二个表单上使用某些方法时会出现错误或该属性仍然设置(将第一个设置保存在第一个表单上)?
静态变量保持保存其值
该属性仍然设置。这就是静态属性的实际工作方式。
静态字段在应用程序域中共享。因此,第二个表单将可以访问第一个表单设置的数据。
你真正想要的是一个单例而不是一个静态类。有一些重叠,但如果我正确理解你的愿望,单例是正确的方法。请参阅此 SO 帖子:有关更多信息和代码清单:单例模式示例