Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinC窗体中的静态属性#_C#_.net_Winforms_Properties - Fatal编程技术网

C# WinC窗体中的静态属性#

C# WinC窗体中的静态属性#,c#,.net,winforms,properties,C#,.net,Winforms,Properties,我有一个WinForms应用程序。 在这个应用程序中,我有一些表单和静态类,它们具有公共静态属性 还有一些公共静态方法需要设置属性,因为表单在 这些方法 现在,如果我在第一种形式中设置这个属性,那么当我在 第二个表单是否会出现错误或属性仍然设置(将第一个设置保存在第一个表单上)?属性仍然设置。这就是静态属性的实际工作方式。静态字段在应用程序域中共享。因此,第二个表单将可以访问第一个表单设置的数据。静态变量保持保存其值。您真正想要的是一个单例而不是静态类。有一些重叠,但如果我正确理解你的愿望,单身

我有一个WinForms应用程序。 在这个应用程序中,我有一些表单和静态类,它们具有公共静态属性 还有一些公共静态方法需要设置属性,因为表单在 这些方法

现在,如果我在第一种形式中设置这个属性,那么当我在
第二个表单是否会出现错误或属性仍然设置(将第一个设置保存在第一个表单上)?

属性仍然设置。这就是静态属性的实际工作方式。

静态字段在应用程序域中共享。因此,第二个表单将可以访问第一个表单设置的数据。

静态变量保持保存其值。

您真正想要的是一个单例而不是静态类。有一些重叠,但如果我正确理解你的愿望,单身是正确的方法。请参阅本文:有关更多信息和代码列表:

+1关于将功能移出表单-单例是否优于静态助手类仍有争议…尽管我认为大多数人更喜欢单例。这是一个有趣的帖子:哇!谢谢你们,托德·斯普朗和NDJ@NDJ,查看此深入讨论:@ToddSprang要了解更多详细信息,我有一个数据库,在这两种形式中,我可以将数据插入或更新到不同的表中,所以我想要的是有一个DB ConnectionString实例,每个表单都将调用适当的方法来插入data@Elior:哦,您真正想要做的是构建一个数据访问层(单独引用.csproj)。基本上,它将提供一种方法来执行诸如UpdateCustomers(CustomerInfo CustomerInfo){…}之类的操作。下面是ASP.NET中的详细信息,但该原则也适用于WinForms。更多细节远远超出了SO回复的范围。:)注意:app.config允许您将连接字符串存储在中心位置: