如何定义在c#中不会改变的文本- 4.0 -最佳性能- 2种语言支持- EXPERT

本文关键字:最佳 文本 性能 EXPERT 支持 语言 2种 改变 定义 何定义 | 更新日期: 2023-09-27 18:08:00

我的web应用程序支持两种不同的语言。所以我有两个不同的字符串。我的问题是,定义静态文本的最佳方式是什么?我的意思是,这4个例子之间是否存在性能差异,或者是否存在其他更好的方法?

static private string srLang1 = "Username";
private string srLang2 = "Username";
static string srLang3 = "Username";
string srLang4 = "Username";
const string srLang5="Username";
private const string srLang6 = "Username";

如何定义在c#中不会改变的文本- 4.0 -最佳性能- 2种语言支持- EXPERT

我看不出任何与声明相关的性能问题。

为不同语言提供不同文本的更好方法是使用资源使应用程序全球化。

面向ASP的全球化架构。净

基本上在参考资料中定义字符串和其他可本地化的项,例如图像。然后您可以从源代码中引用资源。

private const string srLang6 = "Username";似乎是最好的。ReSharper插件会建议这样做。

我猜您正在寻找资源文件和全球化。在互联网上搜索或看看这个问题中提供的链接。

虽然我不推荐您的方式全球化应用程序最好的选择在您的选项之间的性能是const string myString = "hello" (请注意,没有区别 private type varName = somethingtype varName = something。在c#中,默认情况下所有成员都是隐式的private,除非你指定了修饰符)

您绝对应该看看MSDN关于全球化和本地化的系列文章。它向你展示了如何在你的网站上正确地支持多种语言,而不必做你上面尝试的事情:

ASP。. NET全球化和本地化

从本地化ASP中的所有文章开始。. NET网页通过使用资源,只是继续工作的方式。

这篇较早的文章讨论了静态与非静态性能的度量。至于私有和非私有,我所知道的一切都说这应该没有什么区别,但是编译器有时会做一些有趣的事情。

最好的答案是使用某种性能测试来度量程序中的差异。尽管我们可以谈论理论,但没有什么比冰冷的数据更重要。