Dil*_*ave 3 vb.net syntax visual-studio-2005 visual-studio-2008
我正在将VB.NET Web应用程序从Visual Studio 2005(.NET 2.0)迁移到Visual Studio 2008(.NET 3.5),虽然它很简单但我遇到了一个需要一些时间来解决的问题.
有问题的代码如下:
Dim serviceArray = New SecurityLayer.Model.Service()
serviceArray = new SecurityLayer.SecurityBusinessController.GetServices(userId)
Run Code Online (Sandbox Code Playgroud)
哪个在VS2005/.NET2.0中编译但在VS2008/.NET3.5中失败,并出现以下错误:
"SecurityLayer.Model.Service的1维数组"类型的值无法转换为"SecurityLayer.Model.Service"
这表明serviceArray未声明为数组,并且在阅读MSDN文档时,它看起来不像版本之间的语法有所改变,但它声明无论是否传入任何值,都需要花括号.果然,在它的声明中添加花括号可以解决问题(编译器移动到下一个实例!).
Dim serviceArray = New SecurityLayer.Model.Service(){}
serviceArray = new SecurityLayer.SecurityBusinessController.GetServices(userId)
Run Code Online (Sandbox Code Playgroud)
更新此声明的所有实例后,代码现在构建并按预期运行.
Option Explicit和Option Strict在两个IDE中是相同的,所以它不能是那个(或者至少是我假设的).
所以我的问题是,为什么这个构建在VS2005/.NET2.0而不是VS2008/.NET3.5中?
提前致谢