我的想法是避免在我的 Asp.Net MVC 应用程序中使用魔法字符串键。 为此,我想创建要在应用程序中共享的字符串常量键。
例如,我可以编写 TempData[MyClass.Message]
或 TempData[MyEnum.Message.ToString()]
而不是 TempData["Message"]
。
public class MyClass
{
public const string Message = "Message";
}
和
public enum MyEnum
{
Message,
Others
}
我的问题是:避免魔术字符串键的更好方法是什么?在类中使用字符串常量键或将枚举与 ToString()
一起使用?
最佳答案
这取决于偏好和使用。
您能够以强类型方式接受枚举值:
public void SomeFunction(MyEnum someValue)
{
}
或者
TempData[MyEnum.Message]
对于 const 字符串,你不能。
您还有一种内置的方法来枚举枚举中的值。
您还没有提供第三个选项,那就是将您的“常量”放在您的配置设置 (App.Config) 中。这将允许您在编译时间后配置它们。您现在可能不需要它,但将来可能需要,因此值得考虑。
其中之一可能更适合全局化目的。我不确定是哪一个,因为我从未将应用程序全局化。我假设无论哪个在卫星组件中起作用。
基本上,它归结为 TempData
是什么,以及您打算如何使用它。
关于c# - 哪个是避免魔术字符串键的更好方法?在类中使用字符串常量键还是使用枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989684/