vb new 关键字

来源:百度知道 编辑:UC知道 时间:2024/07/16 02:50:44
看下这段代码错在哪里?
Private Function tranIdType(ByVal nameStr As String) As String
Dim name() As String = {"大","小"}
Dim value() As String = {"A","B"}
Dim i As Integer
tranIdType = Nothing
For i = 0 To name.Length - 1
If nameStr.Trim.Equals(name(i)) Then
tranIdType = value(i)
End If
Next
Return tranIdType
End Function
排错提示为:1、使用new关键字创建对象实例
2、在调用方法前通过检查确定对象是否为空。
!!!!!!50分,即来即得!!!!
已经OK了,增加了一句nameStr=new String(nameStr).这样就解决了实例化的问题。另外问一句,VB中传递二维数组时怎么做,例如,我有一个二位数组array(3,5),一个过程handArray(byVal temArray AS String()),中的tempArray的定义是这样吗??

请楼主告知你所用的VB版本,不同版本的VB语法是有不同的。
————————
既然你不告诉版本,我只好猜测你的VB是2005的。

在VB2005下你的代码没有问题。即使不加
nameStr=new String(nameStr)也没有问题,加了这句不过是增加GC的负担而已。

传递数组时参数这么写:
1维:temArray() AS String
2维:temArray(,) AS String
3维:temArray(,,) AS String
不定维:temArray AS Array '之后你再cast到String

你一定是个C/C++程序员,对VB语法还不是太熟悉,其中有2处语法错误:
1、数组声明的同时不能赋值
Dim name() As String = {"大","小"}
应改为:
Dim name() As String
name(0)="大"
name(1)="小"
同样 Dim value() As String = {"A","B"}也按上法修改;
2、VB中没有return语句,而是直接用函数名作为返回值,有了 tranIdType = value(i) 就够了,return语句应该删掉。

这个Function 我运行没问题啊,而且也能正常调用的,确认你的错误是不是这段代码出现的