我正在看MSDN频道9上的视频,可以找到
here,关于Visual Basic 10中的一些新功能.现在我喜欢大多数新功能,其中一些已经被期待已久(自动属性和集合初始化程序)引起我兴趣的一个是C#中的多行羔羊.
在视频中,他使用了一个这样的例子:
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,但是我只是有点担心写入sub … end sub inline可能会有点凌乱,当你正在编写C#时,我可以看到一些优点,当你只需要使用某些东西像c => {….},你可以剪出很多代码.
你在VB中的多行羊羔是什么?
你会发现他们有用吗?
就个人而言,我认为VB的代表和lambdas的语法是完全虚伪的.我的意思是,来吧,AddressOf!这在VB6中很好.在VB.NET这样的语言中绝对不是很好,函数应该被视为一流的公民(尽管它们当然不是真的),而从方法组到代表的转换或多或少是透明的.
现在引入内联函数是非常冗长的.我实际上相信C#的方法 – x => f(x)将在VB中表现得很好,因为它显示了它的作用.在当前状态下,我更喜欢C#进行任何功能编程工作,这是可惜的,因为我一般都喜欢VB.
现在,我真的很高兴,VB终于得到了多行的lambdas和语句lambdas,因为它们有时候仍然有用(就是Parallel.For的例子).但语法被搞砸了.顺便说一下,迭代器也是如此(如果它们应该进入VB10).