C# C语言中的本地化#

C# C语言中的本地化#,c#,string,localization,constants,C#,String,Localization,Constants,我可以本地化私有常量字符串吗? 例子: 我有一个Strings.resx文件,文件中有一个字符串名为“Name”。我可以使用它作为string name=Strings.name但是,我是否可以将“Name”分配给私有常量字符串,例如private const string Name=Strings.Name?我尝试过但失败了,所以我想知道是否有可能这样做?换句话说,如何本地化私有常量字符串 此外,我可以向本地化文件添加参数吗? 例子: 如果我想创建一个带有参数的消息框,例如MessageBox

我可以本地化私有常量字符串吗? 例子: 我有一个
Strings.resx
文件,文件中有一个字符串名为“Name”。我可以使用它作为
string name=Strings.name但是,我是否可以将“Name”分配给私有常量字符串,例如
private const string Name=Strings.Name?我尝试过但失败了,所以我想知道是否有可能这样做?换句话说,如何本地化私有常量字符串

此外,我可以向本地化文件添加参数吗? 例子: 如果我想创建一个带有参数的消息框,例如
MessageBox.Show(无法为“+group.name+”创建user.name+”。组中已经有相同的用户名。”)
我的解决方案现在是在本地化文件
string1
contains
”中创建2个字符串,无法为“
”创建
string2
contains
“。在组中已经有相同的用户名。”
我想知道还有其他简单的方法吗

我可以本地化私有常量字符串吗

不,如果它是可本地化的,它就不是常量…
您可以做的是将字段设置为只读,然后可以在构造函数中赋值或使用字段初始值设定项

我可以向本地化文件添加参数吗

是的,你已经知道怎么做了…
你只是没有正确地使用它

下面的代码示例显示:

如果您有一个资源文件


至于第二个:将其存储为格式,然后调用
string.format
。例如,
Strings.Message=“{0}”不能为{1}创建。布拉布拉
谢谢你的帮助,但是我应该把甲酸盐放在哪里?”Strings.resx'还是“MessageBox”?我尝试在“Strings.resx”文件中为{1}创建“{0}”,并将其添加到消息框中,如“MessageBox.Show(Strings.Name,user.Name);”但它不起作用。
using System;
using System.Windows.Forms;

namespace ConsoleApplication7
{
    public class Program
    {
        private static readonly string aString = Strings.String1;
        public static void Main(string[] arccgs)
        {
            MessageBox.Show(string.Format(aString, "AAA", "BBB"));
            Console.ReadLine();
        }
    }
}