我正在尝试编写一个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/