【发布时间】:2011-01-18 17:54:08
【问题描述】:
我正在将 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)
在 VS2005/.NET2.0 中编译,但在 VS2008/.NET3.5 中失败并出现以下错误:
“SecurityLayer.Model.Service 的一维数组”类型的值无法转换为“SecurityLayer.Model.Service”
这表明 serviceArray 未声明为数组,并且阅读 MSDN 文档,看起来版本之间的语法没有变化,但它指出无论是否传入任何值,都需要大括号。果然,在它的声明中添加花括号可以解决问题(并且编译器会移动到下一个实例!)。
Dim serviceArray = New SecurityLayer.Model.Service(){}
serviceArray = new SecurityLayer.SecurityBusinessController.GetServices(userId)
更新此声明的所有实例后,代码现在可以按预期构建和运行。
Option Explicit 和 Option Strict 在两个 IDE 中是相同的,所以不可能是这样(或者至少这是我的假设)。
所以我的问题是,为什么它是在 VS2005/.NET2.0 中而不是在 VS2008/.NET3.5 中构建的?
提前致谢
【问题讨论】:
标签: vb.net visual-studio-2008 visual-studio-2005 syntax