我应该如何使用Resharper的“移动到资源”功能

时间:2012-03-14 12:44:04

标签: c# resharper

我在C#中有一个MessageBox,如下所示:

MessageBox.Show("Message Here", "Title Here", MessageBoxButtons.OK, MessageBoxIcon.Error);

在我的消息和标题下我在ReSharper中有Move to Resource的选项,它想要将这些值移动到Resources.resx文件,然后在我的MessageBox中引用它们。

这是否有点过分,不是这个功能的真正意义还是一个好主意?

由于

3 个答案:

答案 0 :(得分:1)

我会说这不是矫枉过正。即使你100%肯定(你真的可以吗?)你永远不需要用不同的语言提供你的应用程序,它就会使代码更具可读性,如果它没有“乱七八糟”的字符串/消息。

我个人发现,一旦我将所有这些消息都移到资源上,我就开始编写更好的(错误)消息。在此之前,我努力使它们在代码中“看起来不错”,而不是提供真正有意义的信息。

当然,也有缺点。虽然导航通常不会受到影响(ReSharper的“Go To Definition”同样适用于字符串资源),但您不会检查string.Format参数。对我来说,这值得付出代价(可以说更清晰的代码和更好的消息)。 YMMV。

答案 1 :(得分:0)

如果您现在和将来只使用一种语言(即英语),您可以忽略ReSharper的国际化功能。但是,如果您可能支持其他语言,则应将所有字符串(显示在用户界面中)移动到资源。

答案 2 :(得分:0)

引入move to resource功能以帮助实现国际化。当R#检测到可以本地化的字符串时,它会将其移动到资源文件中。这样做的好处是.resx中的字符串可以更改为不同的语言,而无需重新编译任何代码。

请参阅此here上的ReSharper文档。