C#,我可以从构造函数中移出字典初始代码吗?

5Yr*_*DBA 4 c#

这是我现在的代码.但是我想从构造函数中移出那些"Add".我们能Dictionarynew什么时候初始化吗?或者你有另一个更好的主意.基本上我想定义几个在很多地方使用的字符.

public class User
    {
        public enum actionEnum
        {
            In,
            Out,
            Fail
        }

        public static Dictionary<actionEnum, String> loginAction = new Dictionary<actionEnum, string>();

        public User()
        {
            loginAction.Add(actionEnum.In, "I");
            loginAction.Add(actionEnum.Out, "O");
            loginAction.Add(actionEnum.Fail, "F");


        }
 .....
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 16

您可以使用C#3的集合初始化程序语法:

public static Dictionary<actionEnum, String> loginAction = new Dictionary<actionEnum, string> {
    { actionEnum.In,   "I" }, 
    { actionEnum.Out,  "O" }, 
    { actionEnum.Fail, "F" }
};
Run Code Online (Sandbox Code Playgroud)

顺便说一下,请注意字典是可变的; 任何代码都可以添加或删除值.