以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  值无法转换  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169413)

--  作者:zhenghangbo
--  发布时间:2021/6/15 18:38:00
--  值无法转换
如下图错误提示
C#的代码var sub = RedisHelper.Subscribe(("chan1", msg => Console.WriteLine(msg.Body)));

转换成vb 的代码,在命名窗口中执行出现以下错误框。求助这是个什么类型 值?


--  作者:有点蓝
--  发布时间:2021/6/15 20:23:00
--  
RedisHelper.Subscribe(function("chan1", msg) output.show(msg.Body))
--  作者:zhenghangbo
--  发布时间:2021/6/15 21:06:00
--  
图片点击可在新窗口打开查看
--  作者:zhenghangbo
--  发布时间:2021/6/15 21:07:00
--  
应该是msg返回的数据类型问题
--  作者:有点蓝
--  发布时间:2021/6/15 22:42:00
--  
哪里抄的代码?源连接或者文档发上来看看
--  作者:zhenghangbo
--  发布时间:2021/6/17 20:55:00
--  
已经解决,杰哥的帖子里会发布,我这里简单发布下。具体去杰哥的帖子看,http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=169011&replyID=&skin=1
‘定义Subscribe方法的第二个参数的方法
Dim act1 As Action(of CSRedis.CSRedisClient.SubscribeMessageEventArgs) = Sub(ByVal name As CSRedis.CSRedisClient.SubscribeMessageEventArgs)      ‘数据类型必须为CSRedis.CSRedisClient.SubscribeMessageEventArgs
Output.Show(name.Body)  ‘订阅频道返回的消息内容
End Sub  

‘合成Subscrib方法的参数
Dim func1 = New ValueTuple(Of String,  Action(of CSRedis.CSRedisClient.SubscribeMessageEventArgs))("zhb",act1 )  ‘订阅参数必须为ValueTuple格式,带2个参数。第一个参数为string代表订阅的频道;第二个为redis返回的数据,格式必须为Action,切数据类型必须为CSRedis.CSRedisClient.SubscribeMessageEventArgs。

 Dim su = RedisHelper.Subscribe(func1 ) ‘启动订阅