2013-12-17 34 views

回答

1

如果您的资源是区域设置或语言特定的,请使用resx。由于您可以为每种语言和区域设置单独使用resx,例如用户显示的字符串。

使用Consts如果它的语言环境和语言也是中性的。例如内部软件包名称,对任何不向用户显示的字符串或与语言无关的引用。

1

要显示给用户的文本应该在资源中,因为它允许您迎合多语言应用程序。那里有很多examples。 如果常量仅用于程序流程的内部,那么它们可以是常量 - 尽管连接字符串在配置文件中更好,因为它们会改变。

1

你的问题很普遍,但希望下面的评论可以帮助一下:

你,当你有一组对象的某些属性可以取的值一般使用常量。它们被用于限制编码的简化和易懂,例如如果你有状态常量(Open = 1,Closed = 2),代码更容易编写而不会出错,并理解你是否使用有意义的名称,如Open或Closed,而不是数字1和2.常量不会给你不同的值为不同的语言(文化)。

当您必须将系统本地化为不同语言时,资源最为有用。根据当前的文化,相同的属性会返回不同的文本。

1

如果您的值与程序相关,则比使用Const。 如果您的值与UI相关(例如)使用resx。

0

Const为喜欢文字值

const string strMsg = "test message"; 
MessageBox.Show(strMsg); 

在C#编译这个就会变成

MessageBox.Show("test message"); 

意味着C#将取代常量名strMsg到包含在strMsg字面值,在性能上,这将是更快。

RESX是在应用程序中的空间,你的价值存储和使用名作为关键字必须先读,在性能上它有一个额外的开销比常量

例如

ResourceManager rm = new ResourceManager("ResourceFileName",this.GetType().Assembly); 
string str=rm.GetString("Keyname"); 

对于最好的办法 如果你的目标多语言使用RESX更多细节see this question

使用常量,如果你的应用程序没有特定的语言或const值是数字

相关问题