我正在观看MSDN第9频道的视频,可以在这里找到,关于Visual Basic 10中的一些新功能.现在我喜欢大多数新功能,其中一些已经期待已久(自动属性和集合初始化器)引起我注意的是C#中的多行lambdas.
在视频中他使用了这样一个例子:
Dim scores = {10,20,30,40,50} Dim thread as new Threading.Thread(Sub() For Each o in scores console.writeline(o) Next End Sub)
现在我喜欢VB的所有冗长,但我只是有点担心编写子... end sub inline可能会有点混乱,当你只需要使用某些东西时,我可以看到在编写C#时内联的一些优点像c => {....},你可以删除很多代码.
你在VB中对多行lambda有什么看法?
你会发现它们有用吗?
就个人而言,我认为VB的代表和lambdas的语法完全是假的.我的意思是,来吧,AddressOf
!这在VB6中很好.在VB.NET等语言中,函数应该被视为一等公民(当然,它们实际上并非如此)以及从方法组到委托的转换或多或少是透明的,这绝对不是很好.
现在内联函数的引入非常冗长.我实际上相信C#方法 - x => f(x)
在VB中表现得非常好,因为它确实显示了它的作用.在目前的状态下,我更喜欢C#进行任何函数编程工作,这很可惜,因为我一般都喜欢VB.
现在,我真的很高兴VB终于得到多行lambdas和语句lambdas因为它们有时候仍然有用(以案例为例Parallel.For
).但语法搞砸了.顺便说一句,迭代器也是如此(如果它们应该进入VB10).