当前位置:  开发笔记 > 编程语言 > 正文

你怎么看待VB 10中的多行lambdas

如何解决《你怎么看待VB10中的多行lambdas》经验,为你挑选了1个好方法。

我正在观看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有什么看法?

你会发现它们有用吗?



1> Konrad Rudol..:

就个人而言,我认为VB的代表和lambdas的语法完全是假的.我的意思是,来吧,AddressOf!这在VB6中很好.在VB.NET等语言中,函数应该被视为一等公民(当然,它们实际上并非如此)以及从方法组到委托的转换或多或少是透明的,这绝对不是很好.

现在内联函数的引入非常冗长.我实际上相信C#方法 - x => f(x)在VB中表现得非常好,因为它确实显示了它的作用.在目前的状态下,我更喜欢C#进行任何函数编程工作,这很可惜,因为我一般都喜欢VB.

现在,我真的很高兴VB终于得到多行lambdas和语句lambdas因为它们有时候仍然有用(以案例为例Parallel.For).但语法搞砸了.顺便说一句,迭代器也是如此(如果它们应该进入VB10).


首先,`AddressOf`是完全虚假的.我们不接受函数的地址,我们将函数组转换为委托(虽然从技术上讲,`AddressOf`甚至不这样做,它只是语法歧义).其次,这是一个完全无趣的实施细节.我们*要*在这里做的是将函数视为任何旧对象.这可能会让一些VB程序员误以为然,但这太糟糕了.没有我的同情.我想使用一种强大的语言,而不是那种害怕有用和基本概念的人.
推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有