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

15 浏览
0 Comments

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

是否可以在VB.NET中添加一个很好的小功能,像自动属性一样更快地编写代码,这符合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

0
0 Comments

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

在C# 3中引入了自动属性,使得创建属性变得更加简单。然而,为什么VB.NET 9没有跟进并提供类似的功能呢?

可能是因为在VB.NET中,使用Visual Studio创建属性的骨架代码比较容易。事实上,Visual Studio可以自动为你生成属性的90%代码,而在C#中,你过去需要自己输入所有的代码。

然而,为什么VB.NET没有像C#一样提供自动属性的功能呢?可能是因为VB.NET的设计团队认为这并不是一个很大的痛点。他们可能认为,使用Visual Studio来自动生成属性代码已经足够方便了,并不需要额外的自动属性功能。

当然,这只是我们的猜测。VB.NET的设计团队可能还有其他原因没有提供自动属性功能。无论是出于技术限制、语言设计的考虑,还是其他原因,他们都可能认为不需要提供自动属性功能。

无论原因如何,如果你在VB.NET中也想使用自动属性,你可以通过一些手动的方法来实现。例如,你可以使用Visual Studio的代码片段来快速生成属性的骨架代码。你也可以使用代码生成工具来自动生成属性的代码。总之,尽管VB.NET没有提供内置的自动属性功能,但你仍然有一些方法可以在代码中实现类似的效果。

总结起来,为什么VB.NET 9没有像C# 3那样的自动属性功能可能有多种原因,可能是因为VB.NET的设计团队认为使用Visual Studio来自动生成属性代码已经足够方便,也可能是出于其他技术或语言设计的考虑。无论原因如何,如果你想在VB.NET中使用自动属性,你可以通过手动的方法来实现类似的效果。

0
0 Comments

为什么VB.NET 9不像C# 3那样具有自动属性?

在VB中,很多功能的延迟是因为开发结构与C#不同,而且通常更加注重细节。根据Paul Vick在这个问题上的帖子的建议,这在某种程度上是不幸的。这意味着在许多情况下(自动属性、迭代器方法、多行Lambda等等),会有一些延迟,但另一方面,VB开发人员通常会在长期内获得更成熟的功能(从讨论来看,这对迭代器方法尤其正确)。

所以,长话短说:VB 10(希望如此!)将会具有自动属性。

我不认为在实现功能之前,VB.NET会比C#更加注重思考。我是说,这不是事实。

我并不是说C#开发人员不够细心;我是说生产周期更快,功能被引入语言中,然后再进行升级。这绝对适用于迭代器方法(尝试递归它们!)和可能的自动属性。

:VB中的迭代器方法?在哪里?何时?

0
0 Comments

自从C# 3推出自动属性(Automatic Properties)功能以来,VB.NET 9为何没有引入类似功能的原因一直是人们关注的问题。尽管这个问题没有得到正式的解答,但可以通过分析相关内容来推测。

可能的原因之一是VB.NET团队认为自动属性并不是一个必要的功能。相比于C#,VB.NET在属性的声明和使用上更加灵活,具有更多的选项和功能。因此,VB.NET团队可能认为提供自动属性功能并不是一个紧迫的需求。

另一个原因可能是VB.NET团队在设计语言时更注重向后兼容性。VB.NET是一个老牌的语言,拥有大量的遗留代码和项目。引入自动属性功能可能会导致与现有代码和项目的兼容性问题。为了避免这种情况的发生,VB.NET团队可能选择保持现状,而不引入可能引起兼容性问题的新功能。

解决这个问题的方法之一是使用代码片段(code snippets)。通过在代码编辑器中输入"Property",然后按下Tab键,可以快速生成属性的代码模板。虽然这并不是真正的自动属性功能,但可以在一定程度上提高开发效率。

总结起来,为什么VB.NET 9没有像C# 3一样引入自动属性功能,可能是因为VB.NET团队认为自动属性对于语言的发展并不是必要的,而且他们更关注向后兼容性。而解决这个问题的方法之一是使用代码片段来快速生成属性的代码模板。

0