C#代码转换成VB.net代码,图片蓝色部分!

panxuelei1989 2020-06-23 12:28:28
帮我把图片蓝色背景代码转换成vb.net代码,谢谢
...全文
3240 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
使用匿名委托,vb能够完全支持匿名委托、lamda、linq等等。关键是许多 vb程序员好像还是在20几年前的vb知识,没学过最近15年的 vb.net 一样,这个比较可惜。但是只要你对 .net “有点信心”就应该相信,vb.net 其实跟 c# 的能力几乎是一样的。

Module Module1

Sub Main()
Dim a As New A
AddHandler a.TestE, Async Sub(s As Object, e As EventArgs, haha As String)
Await Task.Yield
Console.WriteLine("再来,事件执行____{0}", haha)
End Sub
a.go("触发事件啦")
Console.WriteLine("主程序执行完毕。按任意键结束.......")
Console.ReadKey()
End Sub

End Module

Class A
Public Event TestE(sender As Object, e As EventArgs, haha As String)

Sub go(msg As String)
RaiseEvent TestE(Me, Nothing, msg)
End Sub
End Class
  • 打赏
  • 举报
回复
我不写 vb.net 代码,为了你这个问题我打开 vb 摸索着写了一个demo。实际上只要你有最基本的 vb.net 和 c# 概念以及一定厚度的编程经验,摸索着很快就能熟悉另外一个“语言”。因为在 .net 中各种语言只是体验的差别,原理是完全一样的,都是基于 .net framework 框架的统一严谨的思想的。

Module Module1

Sub Main()
Dim a As New A
Dim b As New B
AddHandler a.TestE, AddressOf b.ee
a.go("触发事件啦")
Console.WriteLine("主程序执行完毕。按任意键结束.......")
Console.ReadKey()
End Sub

End Module

Class A
Public Event TestE(sender As Object, e As EventArgs, haha As String)

Sub go(msg As String)
RaiseEvent TestE(Me, Nothing, msg)
End Sub
End Class

Class B
Public Async Sub ee(sender As Object, e As EventArgs, haha As String)
Await Task.Yield
Console.WriteLine("事件执行____{0}", haha)
End Sub
End Class


这里我声明了一个自定义事件,并且在另外一个代码段(另外一个 Class)中来提供处理事件的代码。我将处理过程由同步改为异步执行,不过就是加上了 async 和 await 这两个东西。去掉它们你就能看到同步跟异步的区别。异步的时候,你会看到主线程先走到“按任意键结束”这个提示的地方,主线程的执行并不会收到事件处理过程的半点阻塞,并发运行。
  • 打赏
  • 举报
回复
vb.net 跟 c# 基本上完全一样,在 function 关键字前编写 async,在内部的执行命令语句最前边写 await。
清晨曦月 元老 2020-06-24
  • 打赏
  • 举报
回复
那个家伙是个内联函数的写法,很多这么写的,用java的时候我也喜欢这么写…有了提示…自己搞吧。
panxuelei1989 2020-06-24
  • 打赏
  • 举报
回复
引用 4 楼 以专业开发人员为伍的回复:
使用匿名委托,vb能够完全支持匿名委托、lamda、linq等等。关键是许多 vb程序员好像还是在20几年前的vb知识,没学过最近15年的 vb.net 一样,这个比较可惜。但是只要你对 .net “有点信心”就应该相信,vb.net 其实跟 c# 的能力几乎是一样的。

Module Module1

Sub Main()
Dim a As New A
AddHandler a.TestE, Async Sub(s As Object, e As EventArgs, haha As String)
Await Task.Yield
Console.WriteLine("再来,事件执行____{0}", haha)
End Sub
a.go("触发事件啦")
Console.WriteLine("主程序执行完毕。按任意键结束.......")
Console.ReadKey()
End Sub

End Module

Class A
Public Event TestE(sender As Object, e As EventArgs, haha As String)

Sub go(msg As String)
RaiseEvent TestE(Me, Nothing, msg)
End Sub
End Class
谢谢,明白了
panxuelei1989 2020-06-24
  • 打赏
  • 举报
回复
谢谢大家,已经搞定了
threenewbee 2020-06-24
  • 打赏
  • 举报
回复
async和lambda,vb也是支持的。
但是你给出文本代码啊,难道回答你问题我还要自带打字输入服务?
by_封爱 2020-06-24
  • 打赏
  • 举报
回复
我不会VB.NET 但是我有一个方法.. 把你的cs写到exe或者dll中.. 然后编译出来之后 用ilspy打开.. 选VB.... 就能看到VB的源码了 哈哈哈 我真是一个小聪明.

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧