c# - C# 中类之间共享数据的最佳方式

标签 c# resources

我正在尝试编写一个Windows窗体应用程序。我有一些按钮,我需要根据变量的状态更改按钮的图像。我将图像放在资源文件夹中,并尝试像这样访问它们:

图像 im = Properties.Resources.green;

如何仅使用“im”变量名称从项目中的所有类中获取此 im 值?

最佳答案

您正在寻找的是一个简单的全局变量,但他们在 C# 中没有这些变量。一个简单的替代方法是创建一个名为 MyImages(或其他名称)的类,然后将“im”设置为静态公共(public)字段,如下所示:

public class MyImages
{
    public static Image im = Properties.Resources.green;
}

然后,从项目中的任何位置,您都可以使用如下代码访问“im”:

Image newImage = MyImages.im;

一些程序员可能会对这样的事情感到恐惧,并坚持“依赖注入(inject)”或适当的单例,或者将“im”设为私有(private)并创建一个获取/设置公共(public)属性,或类似的东西。但是,如果您确实需要从代码中的任何位置访问此图像,这是一种简单而有效的方法,并且它实现了将生成图像的代码保留在一个位置的目标。

关于c# - C# 中类之间共享数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447363/

相关文章:

c# - 在特定字符之后或最大长度之后分割字符串

c# - 如何处理像 Mongo 这样的文档数据库中单独存储的对象的引用?

c# - 以编程方式选择 WPF RichTextBox (FlowDocument) 中的文本范围

asp.net - 使用 HTTP 处理程序中的 ASP.NET 资源文件

Java获取没有.jar文件的执行jar的路径

svn - 向非程序员解释 SVN

c# - 使 "Read Only"对象从 API 包装器返回?

c# - Windows 窗体 C# 设计器文件中的“枚举”类型中断

iphone - 新xCode4.2中的RESOURCES文件夹在哪里

java - getResource返回NullPointerException