【发布时间】:2017-06-24 10:25:18
【问题描述】:
我想使用Dictionary 和Action 调用一些静态方法
这是我的代码:
public class Works
{
public static void DoWorkA()
{
Thread.Sleep(1000);
Console.WriteLine("Doing Work A");
}
public static void DoWorkB()
{
Thread.Sleep(2000);
Console.WriteLine("Doing Work B");
}
public static void DoWorkC()
{
Thread.Sleep(3000);
Console.WriteLine("Doing Work C");
}
}
这是我的主要方法
try
{
var DoJob = new Dictionary<int, Action>();
DoJob.Add(1, () => Works.DoWorkA());
DoJob.Add(2, () => Works.DoWorkB());
DoJob.Add(3, () => Works.DoWorkC());
var input = Console.Read();
var job = DoJob[input];
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
我使用foreach 来迭代键并且键存在
foreach (var item in DoJob)
{
Console.WriteLine($"Item {item.Key} has Value {item.Value}");
}
但是当我想使用输入值访问密钥时,我得到了异常
怎么了?
【问题讨论】:
-
只是一个疯狂的猜测,但我认为您使用的密钥不在字典中。
-
Console.Read正在返回char,例如 '1'、'2'、'3' 这与int1、2、3 不同 -
@CodeCaster 我把它读成
ReadLine(即一个字符串)
标签: c# dictionary exception