在c#中“动态”更改静态变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c#中“动态”更改静态变量相关的知识,希望对你有一定的参考价值。
我有下面的课程,我在网站上设置了什么语言应该是“运行”语言。 现在我只是在运行/调试我的项目之前输入/输出我想要选择的语言。
我希望能够在我的网站运行时动态更改语言。 你将如何做到这一点(我想避免使用会话参数或将在某个日期运行的cookie来解决它)
public class LanguageCodes
{
public const string DenmarkCode = "DK";
public const string SwedenCode = "SE";
}
public class LanguageFactory
{
public static readonly string CurrentLanguage =
LanguageCodes.DenmarkCode;
//LanguageCodes.SwedenCode;
public static AbstractLanguage Current {
get {
switch (CurrentLanguage)
{
case LanguageCodes.DenmarkCode: return new LanguageDK();
case LanguageCodes.SwedenCode: return new LanguageSE();
}
return null;
}
}
答案
在您当前的实现中,您不能这样做。
const
是编译已知变量,即使使用反射也无法编辑。
这样做的唯一方法是编写一个程序,可以编辑自己的源代码并重新编译自己。我想你不想这样做。
但是你可以玩
Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR");
如果你想保持你的实施改变const
到static
public class LanguageCodes
{
public static string DenmarkCode = "DK";
public static string SwedenCode = "SE";
}
///
public static string CurrentLanguage
以上是关于在c#中“动态”更改静态变量的主要内容,如果未能解决你的问题,请参考以下文章