我正在构建一个C#应用程序,其中可能包含几个资源文件,用于存储语言翻译中使用的字符串。我正试图为资源文件中的 "键 "制定一个命名惯例。有人在我之前解决过这个问题吗?
就用Pascal的命名惯例。不要把key归于一个模块或类。一般化它,这样它就可以被重复使用。
例如:ReadWriteWarningMessage。
对于菜单项来说,用点分隔的方式是可以的,但对于动态生成的字符串或用户信息呢?但是对于那些动态生成的字符串或者用户消息呢。
你是否考虑过像Menu_File_Open这样的下划线或者像Place_StringDescription这样的东西?我目前采用的方案是,普通的东西去Common_像Common_PressHereTo这样的Common_,而特定的视图则去各自的地方,比如MainMenu_FileOpen。一般来说,在下划线前我键入资源出现的位置,下划线后键入描述性文字。
我试着用类似于我用来布局程序结构的命名空间来组织。 所以如果你有MyCompany.MyProduct.MyModule,那么该模块中的字符串就会是MyModule_Blah_Blah。 这样它们在整个产品中是唯一的。
如果你在资源中的名称值对,如
CloseConfirmation - 你想关闭窗口而不保存吗?
添加一个新的类,名为 "信息"。
public static class Messages
{
public const String CloseConfirmation = "CloseConfirmation";
public static String GetMessage( String messageId )
{
return //your namespace//.Properties.Resources.ResourceManager.GetString( messageId );
}}
并使用
MessageBox.Show( Messages.GetMessage(Messages.CloseConfirmation));
希望能帮到你。
请看 https:/docs.microsoft.comen-usdotnetstandarddesign-guidelinesnaming-resources。. 正如@bobbyalex所说,这包括使用PascalCasing,因为生成的资源设计器文件确实将资源作为属性来实现。
✔️ DO在资源键中使用PascalCasing。
✔️ DO提供描述性而非简短的标识符。
✔️ DO不要使用主要CLR语言的特定语言关键字。
✔️ DO 在命名资源时只使用字母数字字符和下划线。
✔️ DO对异常消息资源使用以下命名约定。
资源标识符应是异常类型名称加上异常的简短标识符。
ArgumentExceptionIllegalCharacters
ArgumentExceptionInvalidName
ArgumentExceptionFileNameIsMalformed