快速查找GUID的方法

Beh*_*ooz 4 .net c# guid

我有很多(+2000)GUID(在某些网络类中),我的程序在收到消息并完成与之相关的工作时必须找到其中一个.
积极的一点是我有一个硬代码生成器,但最快的方法是我的目标(我不知道如何实现它).

我的代码应该做这样的事情:

switch(received guid)  
{  
case guid1: do job 1; break;  
case guid2: do job 2; break;  
case guid3: do job 3; break;  
case guid4: do job 4; break;  
....  
}  
Run Code Online (Sandbox Code Playgroud)

Bri*_*sen 15

您可以使用Guid作为键创建一个Dictionary,并将委托引用作为值.这将确保快速查找.

  • 是不是字典究竟是什么开关会在封面下构建?:p (2认同)

Sam*_*der 9

创建一个用于执行Job的接口,然后实现2000个完成工作的类,每个类都知道自己的guid.然后使用guid作为键将类添加到字典中.然后当你获得guid时,你在字典中查找对象并在界面上调用方法.

public interface IJobDoer
{
    void DoJob();
    Guid Guid{get;}
}

public class FirstJobType : IJobDoer
{
    void DoJob()
    {
     /// whatever...
    }
    Guid Guid { get{return "insert-guid-here";}}
}
Run Code Online (Sandbox Code Playgroud)

  • 我是否真的是唯一一个认为保持2000课程成为问题的人?这甚至是一个远程合适的解决方案? (2认同)
  • @Programming Hero:你必须以某种方式管理2000'工作处理程序.管理2000名代表会更容易.我本以为将类划分为一些合适的命名空间会有所帮助,但基本上你将不得不以某种方式管理它们并将每个类都放在它自己的类中,所有功能都集中在一个地方似乎是一个很好的解决方案.对我来说. (2认同)

Pau*_*ane 6

使用哈希表将Guid映射到委托或代表任务的类,例如Dictionary<Guid, Action>Dictionary<Guid, Task>.