问题 为什么VB.NET 9没有像C#3这样的自动属性?


有一个很好的小功能,可以更快地编写自动属性等代码非常适合VB.NET的口头禅吗?

像这样的东西会很完美:

Public Property FirstName() As String
    Get
    Set
End Property

更新: VB.NET 10(随Visual Studio 2010和.NET 4.0一起提供)将具有自动属性。这是一个链接,显示有关该功能的一些信息: http://geekswithblogs.net/DarrenFieldhouse/archive/2008/12/01/new-features-in-vb.net-10-.net-4.0.aspx

在VB.NET 10中,自动属性将定义如下:

Public Property CustomerID As Integer

6066
2017-09-23 17:04


起源



答案:


许多功能在VB中被延迟的一个原因是开发结构与C#有很大不同,此外,通常更多的考虑细节。在这种情况下似乎也是如此,正如所建议的那样 保罗维克的帖子 就此事。这是不幸的,因为它意味着在许多情况下延迟(自动属性,迭代器方法,多行lambda,仅举几例)但另一方面,VB开发人员通常从长远来看会获得更加成熟的功能(查看在讨论中,对于迭代器方法尤其如此)。

所以,长话短说:VB 10将(希望!)看到自动属性。


6
2017-09-23 17:19



我不认为VB.NET在实现功能之前会比C#更多地考虑。事实上我不是这样的。 - Chris Pietschmann
我不是说C#开发人员不那么小心;我说生产周期更快,功能被引入语言,然后升级。这绝对是迭代器方法(尝试递归它们!)和可能是自动属性的情况。 - Konrad Rudolph
@Konrad:VB中的迭代器方法?哪里?什么时候? - Meta-Knight


答案:


许多功能在VB中被延迟的一个原因是开发结构与C#有很大不同,此外,通常更多的考虑细节。在这种情况下似乎也是如此,正如所建议的那样 保罗维克的帖子 就此事。这是不幸的,因为它意味着在许多情况下延迟(自动属性,迭代器方法,多行lambda,仅举几例)但另一方面,VB开发人员通常从长远来看会获得更加成熟的功能(查看在讨论中,对于迭代器方法尤其如此)。

所以,长话短说:VB 10将(希望!)看到自动属性。


6
2017-09-23 17:19



我不认为VB.NET在实现功能之前会比C#更多地考虑。事实上我不是这样的。 - Chris Pietschmann
我不是说C#开发人员不那么小心;我说生产周期更快,功能被引入语言,然后升级。这绝对是迭代器方法(尝试递归它们!)和可能是自动属性的情况。 - Konrad Rudolph
@Konrad:VB中的迭代器方法?哪里?什么时候? - Meta-Knight


它在vb.net中也没有那么大的痛点,因为visual studio会自动为你创建一个属性的90%的骨架代码,而使用C#你曾经不得不输入它。


5
2017-09-26 20:35





如果您想更快地执行属性,请尝试使用代码段。 类型: 属性 输入“y”后,按Tab键:-)。

我意识到这并没有回答特定的问题,但确实给你了VB团队提供的内容......


3
2017-09-23 17:15





我知道这篇文章很老,所以你可能已经知道了,但是VB在下一版本的VS中获得了自动属性。

基于 回应反馈 和 Channel9的


2
2018-01-05 09:32





C#和VB.NET并没有完全符合他们的第一个版本中的新功能。通常,在下一个版本中,C#会捕获一些VB.NET功能,反之亦然。我有点像VB.NET中的文字XML,并希望他们将它添加到C#中。


1
2017-09-23 17:06





真的没有特别的理由。一直以来,即使VB.NET和C#被吹捧为同样强大(并且公平,他们 )他们的语法和一些结构有时会有所不同。你有两个不同的开发团队致力于这些语言,所以你可以期待它发生。


1
2017-09-23 17:15



语言 是 同样强大; ms提供的工具功能不同。 - hometoast


vb中不需要自动属性 通过使用自动属性进行的让步是您无法修改Get和Set。

如果您不需要这些,只需创建一个公共数据字段。

VB多年来一直拥有自动属性。他们只是称他们为别的东西。


-3
2018-03-27 20:05



C#也有公共字段。并且它们不是任何一种语言的自动属性 ​​- 存在差异。 - Mark Brackett
这是错的。字段和属性是非常非常不同的东西。 - Mike Mooney