vb.net参数传数组问题

java_techstu 2020-07-15 08:53:23
我需要写一个函数,返回值是数组形式,那函数的形参应该怎么写,传递的实参如何写?还有参数的类型如何匹配
...全文
465 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztltgg 2020-07-15
  • 打赏
  • 举报
回复
你这个没有参数 返回值类型现在语法可以不写了,系统会推断,自己写也可以 dim Intoarr as new Intoarray dim result as As Double(, ) =intoarr.sqlinput()
java_techstu 2020-07-15
  • 打赏
  • 举报
回复
引用 10 楼 hztltgg 的回复:
比如定义为 Dim arr1(Dtable.Rows.Count - 1, 1) As Int32 不过数据类型为什么是int32?你不是要乘0.4吗?那应该是用小数啊
我将数据类型改成double,Dim arr1(4, 50) As Double 然后Public Function SqlInput() As Double(,)函数定义这里 我现在要在按钮里调用这个函数的话,我应该怎么写, dim Intoarr as new Intoarray 返回值=intoarr.sqlinput(参数) 用什么接这个返回值,调用的时候,传递的参数怎么写。。。。 大神你帮我看看,我这个函数里是不是没有参数啊,
hztltgg 2020-07-15
  • 打赏
  • 举报
回复
比如定义为 Dim arr1(Dtable.Rows.Count - 1, 1) As Int32 不过数据类型为什么是int32?你不是要乘0.4吗?那应该是用小数啊
hztltgg 2020-07-15
  • 打赏
  • 举报
回复
Dim arr1(,) As Int32 这句只是定义了arr1这个数组,没有分配大小,后面不能直接赋值,你要么用集合,最后转换为数组,要么根据行数定义大小
java_techstu 2020-07-15
  • 打赏
  • 举报
回复
引用 7 楼 hztltgg 的回复:
你的vb.net 啊,那语法略有不同

    Public Function 函数名(参数 As Object) As Double()

        Dim arr As Double() = {1, 2, 3}

        Return arr

    End Function
参数和参数,返回值是返回值,要么你代码贴下,看看你的思路
您好,我把代码贴上,您如果有时间的话帮我看一看可以吗, Imports System.Data.SqlClient Public Class IntoArray Public Function SqlInput() As Integer(,) Dim conn As SqlConnection = New SqlConnection(DbConnstr.connstring()) '创建链接对象 Dim sqlStr As String = "select * from test_data" Dim cmd As SqlCommand = New SqlCommand(sqlStr, conn) '创建命令对象 Dim da As SqlDataAdapter = New SqlDataAdapter(cmd) Dim ds As New DataSet Try conn.Open() da.Fill(ds, "Dtable") Catch ex As Exception conn.Close() Throw New Exception(ex.Message) Finally conn.Close() End Try Dim B_max As Integer = Dtable.Compute("max(B)", "") Dim B_min As Int32 = Dtable.Compute("min(B)", "") Dim A_max As Int32 = Dtable.Compute("max(A)", "") Dim A_min As Int32 = Dtable.Compute("min(A)", "") Dim D_max As Int32 = Dtable.Compute("max(D)", "") Dim D_min As Int32 = Dtable.Compute("min(D)", "") Dim P_max As Int32 = Dtable.Compute("max(P)", "") Dim P_min As Int32 = Dtable.Compute("min(P)", "") Dim B_average As Int32 = (B_max - B_min) / 5 Dim A_average As Int32 = (A_max - A_min) / 5 Dim D_average As Int32 = (D_max - D_min) / 5 Dim P_average As Int32 = (P_max - P_min) / 5 Dim arr1(,) As Int32 For i = 0 To Dtable.Rows.Count - 1 If Dtable.Rows(i).Item("B") / B_average < 1 Then arr1(i, 1) = 20 * 0.4 ElseIf Dtable.Rows(i).Item("B") / B_average < 2 Then arr1(i, 1) = 40 * 0.4 ElseIf Dtable.Rows(i).Item("B") / B_average < 3 Then arr1(i, 1) = 60 * 0.4 ElseIf Dtable.Rows(i).Item("B") / B_average < 4 Then arr1(i, 1) = 80 * 0.4 Else arr1(i, 1) = 100 * 0.4 End If Next Return arr1 End Function End Class 实现的功能就是这个表里的badp这四列分别取一个(最大值-最小值)/5的值,然后这四列的每一行分别除以这个值,得到的结果我想存到数组里返回
hztltgg 2020-07-15
  • 打赏
  • 举报
回复
你的vb.net 啊,那语法略有不同

    Public Function 函数名(参数 As Object) As Double()

        Dim arr As Double() = {1, 2, 3}

        Return arr

    End Function
参数和参数,返回值是返回值,要么你代码贴下,看看你的思路
hztltgg 2020-07-15
  • 打赏
  • 举报
回复
函数怎么不让 return arr1 ?没有定义返回值吗? public double[] 函数名(){} 这样的你定义了么? 参数又是什么?参数和返回值完全没有关系啊,而且看你需求好像不需要参数啊
java_techstu 2020-07-15
  • 打赏
  • 举报
回复
引用 4 楼 OrdinaryCoder 的回复:
我没理解你返回值是数组和参数有什么关系 函数参数只与你函数要做的事有关系,也就是比如一个加法函数 参数是两个int类型或者其他数字类型 但是返回值可以是任意类型 我直接在内部输出了 就不需要往外返回 所以返回值是void 外面需要知道相加之后的和 我可以返回 int double float long 等等 哪怕你反个string 然后让外面自己去转换类型
我想实现的操作是将数据库表读入然后对其中的一列进行处理,然后在将这列在listview上显示,我的做法是写了个函数,把数据先读入到datatable中,然后对B列的没一个数据datatable.row(i).item("B")/B_average,然后将获得的这一列数储存到数组arr1中,然后在listview显示这一列数,现在写这个函数不让return arr1,而且在listview那里调用这个function的时候参数也不知道应该写什么。。拜托大神如果有时间的话帮我解决解决这个问题,十分感谢
OrdinaryCoder 2020-07-15
  • 打赏
  • 举报
回复
我没理解你返回值是数组和参数有什么关系 函数参数只与你函数要做的事有关系,也就是比如一个加法函数 参数是两个int类型或者其他数字类型 但是返回值可以是任意类型 我直接在内部输出了 就不需要往外返回 所以返回值是void 外面需要知道相加之后的和 我可以返回 int double float long 等等 哪怕你反个string 然后让外面自己去转换类型
java_techstu 2020-07-15
  • 打赏
  • 举报
回复
引用 1 楼 以专业开发人员为伍 的回复:
不必纠结“回字有多少比划?”,自学最基本的东西。
能给解释解释吗
  • 打赏
  • 举报
回复
不必纠结“回字有多少比划?”,自学最基本的东西。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧