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

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

像这样的东西会很完美:

Public Property FirstName() As String Get Set End Property 

更新: VB.NET 10(随Visual Studio 2010和.NET 4.0一起提供)将具有自动属性。 这是一个链接,显示有关该function的一些信息: 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 

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

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

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

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

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

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

基于对反馈和Channel9的 响应 。

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

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

在vb中不需要自动属性通过使用自动属性做出的让步是你不能修改Get和Set。

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

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