如何获取图像资源的名称作为字符串
问题描述:
我已经尝试了几种方法来获取名称,包括调查PropertyItems
和老式的ToString()
方法,尝试获取图像资源的名称作为字符串。如何获取图像资源的名称作为字符串
我有一个图像的选择,命名,在资源文件中。我没有问题使用resource.imageName
显示图像。我想尝试将imageName
作为字符串来减少我的代码中其他地方的错误和拼写错误。
使用resource.imageName.ToString()
为我提供了字符串System.Drawing.Bitmap
答
您可以创建一个功能:
public static string GetPropertyName<T>(Expression<Func<T>> propertyExpression)
{
return (propertyExpression.Body as MemberExpression).Member.Name;
}
然后以这种方式使用它:
public class ClassName {
public Foo { get; set; }
}
...
...
...
var inst = new ClassName();
var propertyName = GetPropertyName(() => inst.Foo);
这不是我是谁想出了这个,我从其他主题中拿走它并运行它以查看它是否有效,但是我的浏览器崩溃了,并且找不到原始主题的链接。我会尽快编辑我的帖子。
编辑:I've found it!这是我从中摘录的片段。祝你好运。编辑2:如果您能够轻松获取resource.imageName,那么只需将它传递给GetPropertyName函数即可。如果不是这样,我想我的答案是不完整的
+0
谢谢,那有效!没有需要classname位,而是用资源文件代替inst – Adsy2010
'BMP = Resources.imgname;'将是一个编译错误是有一个错字。当出现拼写错误时,使用字符串变量获取它们将导致运行时错误。 – Plutonix