我的想法是避免在我的Asp.Net MVC应用程序中使用魔术字符串键.为此,我想创建要在应用程序中共享的字符串常量键.
例如,我可以写TempData[MyClass.Message]或TempData[MyEnum.Message.ToString()]代替TempData["Message"].
public class MyClass
{
public const string Message = "Message";
}
Run Code Online (Sandbox Code Playgroud)
和
public enum MyEnum
{
Message,
Others
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:哪种方法可以避免使用魔法字符串键?在类中使用字符串const键或与枚举一起使用ToString()?
你应该去const字符串,因为它可以包含空格/特殊字符,如果那些是你的要求.否则将TempData更改Dictionary<MyEnum,object>为更好的方法.
这取决于偏好和用法.
您可以以强类型方式接受枚举值:
public void SomeFunction(MyEnum someValue)
{
}
Run Code Online (Sandbox Code Playgroud)
要么
TempData[MyEnum.Message]
Run Code Online (Sandbox Code Playgroud)
使用const字符串,你不能.
您还有一种内置方法来枚举枚举中的值.
您还没有提供第三个选项,即将"常量"放在配置设置(App.Config)中.这将允许您在编译时配置它们.你现在可能不需要这个,但是你可能在将来,所以值得考虑.
其中一个可能更适合全球化目的.我不确定哪个,因为我从来没有全球化应用程序.无论哪个在卫星组件中工作,我都假设.
基本上,它归结为什么TempData是,以及你打算如何使用它.
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |