我知道两种从资源文件中获取字符串的方法。

方法1:直接访问。

string str = _NAMESPACE.Properties.Resources.HelloWorld;


方法2:通过ResourceManager。

ResourceManager rm = new ResourceManager("_NAMESPACE.Properties.Resources", Assembly.GetExecutingAssembly());
string str = rm.GetString("HelloWorld");


如果存在多个本地化资源文件,则这两种方法都将获取正确的本地化字符串。

如果我在字符串键中输入错误,则在构建时method1将失败。
方法2将失败,直到运行时。因此,我认为method1优于method2。

我在这个论坛上发现了一些类似的问题。但是,我仍然不能很好地回答我的问题。


Why is it better to call the ResourceManager class as opposed to loading resources directly by name?
Need to use ResourceManager + GetString to support cultures OR I can just point directly at the resource file?


method1真的更好吗?

最佳答案

我相信第一种方法会更好,因为当您使用第二种方法时,您正在创建资源管理器的新实例,我认为这是不必要的内存使用。

编辑*

阅读本文后:
https://msdn.microsoft.com/en-us/library/7k989cfy(v=vs.90).aspx

看起来它们基本上是相同的,当直接使用资源类访问资源时,在内部使用资源管理器类来创建对象的实例。

关于c# - 直接访问resource.resx而不是ResourceManager更好吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39652500/

10-11 20:24