我正在通过TCP(TcpClient)与一台仪器进行异步通信. 有大量但数量有限的响应(被转换为字符串)可以从仪器返回,我不希望有大量的IF-THEN-ELSE语句.如何创建一个SortedList,其中的值指向成员函数?

我试过以下几种方法

    private SortedList<string, object> functionList = new SortedList<string, object>();

    private void InitializeList() 
    {
        functionList.Add("Time", ProcessTime(string));  // Invalid expression term 'string'
        functionList.Add("Date", ProcessTime()); // There is no argument given that corresponds 
                                                //  to the required formal parameter 'reply' of  
                                                //  'ProcessTime(string)'
    }

    private void ProcessTime(string reply) 
    {
        // More complex processing here, but you should get the idea.
        Console.WriteLine(reply);
    }

我肯定以前有人问过这个问题,但我找不到在哪里.

推荐答案

我认为代表们可能就是你们心目中的:https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/

Csharp相关问答推荐

System.Text.Json Utf8JsonReader正在读取数组值两次

元素存在方法是否损坏

EF Core:看不到任何查询日志(log)?

FromServices不使用WebAppliationFactory程序>

CsWin32如何创建PWSTR的实例,例如GetWindowText

将委托传递到serviceccollection c#web API

HttpContext. RequestAborted当Android APP失go 连接时未取消

创建临时Collection 最有效的方法是什么?堆栈分配和集合表达式之间的区别?

只有第一个LINQ.Count()语句有效

如何测量在使用UTF8而不是C#中的UTF16编码字符串时内存使用量的增长

使用Orleans进行的单元测试找不到接口的实现

如何将DotNet Watch与发布配置和传递给应用程序的参数一起使用?

是否可以将Collectionview中的数组与ObservableCollection绑定?

源代码生成器项目使用`dotnet build`编译,而不是在Visual Studio中编译?

CRL已过期,但ChainStatus告诉我RevocationStatus未知

WPF动态设置弹出窗口水平偏移

C#如何获取字符串中引号之间的文本?

在构造函数中传递C#函数以用作EventHandler委托的订阅服务器

如何使用IHostedService添加数据种子方法

默认架构不存在EF核心迁移