C# 如何以字符串形式获取图像资源的名称
我尝试了几种方法来获取名称,包括调查C# 如何以字符串形式获取图像资源的名称,c#,image,embedded-resource,C#,Image,Embedded Resource,我尝试了几种方法来获取名称,包括调查PropertyItems和老式的ToString()方法来尝试以字符串形式获取图像资源的名称 我在一个资源文件中选择了一组名为的图像。使用resource.imageName获取要显示的图像没有问题。我想尝试将imageName作为字符串,以减少代码中其他地方的错误和打字错误 使用resource.imageName.ToString()为我提供了字符串System.Drawing.Bitmap您可以创建一个函数: public static string
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;
}
这不是我想出来的,我从另一个主题中获取了它,并运行它以查看它是否有效,但我的浏览器崩溃了,我找不到指向原始主题的链接。我会编辑我的文章,只要我找到它
编辑:这就是我从中获取代码片段的地方。祝你好运
Edit2:如果您能够轻松地获取resource.imageName,那么只需将其传递给GetPropertyName函数即可。如果没有,我想我的答案是不完整的在Visual Studio 2015中,您可以使用
bmp=Resources.imgname如果输入错误,代码>将出现编译错误。如果输入错误,使用字符串变量获取它们将导致运行时错误。谢谢,这很有效!不需要类名位,并将inst替换为资源文件insteadi use VS Express 2010
public class ClassName {
public Foo { get; set; }
}
...
...
...
var inst = new ClassName();
var propertyName = GetPropertyName(() => inst.Foo);
string s = nameof(Resource1.myfile); // s = "myfile"