vb.net参数传数组问题

java_techstu 2020-07-15 08:53:23
我需要写一个函数,返回值是数组形式,那函数的形参应该怎么写,传递的实参如何写?还有参数的类型如何匹配
...全文
463 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 楼 以专业开发人员为伍 的回复:
不必纠结“回字有多少比划?”,自学最基本的东西。
能给解释解释吗
  • 打赏
  • 举报
回复
不必纠结“回字有多少比划?”,自学最基本的东西。
vb.net基础教程 第一部分 Visual Basic.net基础 1.vb. net介绍 2.vb.net的优点 3.新建一个vb.net项目 4.编写第一个vb.net应用程序 第二部分 vb.net的语法部分 1.vb.net的Numeric数据类型 2.vb.net的Byte数据类型 3.vb.net的String数据类型 4.vb.net的Boolean数据类型 5.vb.net的Date数据类型 6.vb.net的Object数据类型 7.vb.net的用户自定义类型 8.vb.net数组定义 9.vb.net数组列表 10.vb.net的多维数组 11.vb.net类型转换函数 第三部分 visual basic.net的运算 程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算(concatenation)及逻辑运算(Logical),下面对这6种运算进行简单介绍。 1.vb.net的算术运算 2.vb.net的赋值运算符 3.vb.net的二进制运算符 4.vb.net的比较运算符 5.vb.net的连接运算符和逻辑运算符 6.vb.net运算符的优先级 (一) Visual basic.net的常量和变量 1.vb.net的常量 2.vb.net的变量 (二) Visual basic.net的流程和控制结构 1.vb.net条件分支语句 2.vb.net的循环语句 (三) vb.net的过程和函数 1.vb.net的Sub过程 2.vb.net的Funtion过程 3.在vb.net中调用过程 4.如何向过程参数 (四)vb.net的类和对象基础 第四部分 visual basic.net的常用控件 1.vb.net的Label控件 2.vb.net的Button控件 3.vb.net的Textbox控件 4.vb.net的MainMenu控件 5.vb.net的Checkbox控件 6.vb.net的Radiobutton控件 7.vb.net的GroupBox控件 8.vb.net的PictureBox控件 9.vb.net的ListBox控件 10.vb.net的CheckedListBox控件 11.vb.net的Combobox控件 12.vb.net的ListView控件 13.vb.net的TreeView控件 14.vb.net的ImageList控件 15.vb.net的Timer控件 16.vb.net的HScrollBar和VScrollBar控件 17.vb.net的ProgressBar控件 18.vb.net的ToolBar控件 19.vb.net的StatusBar控件 20.Vs 2005的ToolStrip控件 21.Vs 2005的StatusStrip控件 22.Vs 2005的MenuStrip控件 第六部分 vb.net的OOP结构 1.什么是oop 2.vb.net的面向对象性 3.vb.net的共享成员(Share Members) 4.类模块和标准代码模块的区别和比较 5.对象浏览器 (一) 建立和使用对象 1.vb.net对象的建立和销毁:对象的生命周期 2.设置和重设vb.net的属性 3.用方法来表现动作 4.vb.net对象变量的声明 5.对一个对象进行多种操作 6.使用New关键字 7.如何释放对对象的引用 8.如何把对象递到一个过程 (二) 在程序运行中得到一个类的信息: 用一个字符名称调用一个属性或者方法 (三) vb.net中的类、继承与多态性 1.vb.net中给一个类添加方法 2.命名属性、方法和事件 3.vb.net的事件和事件处理 4.类的继承(Inheritance) 5.vb.net继承的规则 6.用继承建立一个继承类 7.重载Windows控件 8.什么时候使用继承 9.什么是命名空间(Namespace) 10.vb.net继承的例子 11.vb.net中用继承实现多态性 12.vb.net中用接口实现多态性 第七部分 数据库访问技术 关于SQL语言的知识,请参考: sql语言教程及Sql语言基础 1.数据库基础知识 2.vb.net数据集(Datasets)的概念 3.什么是dao 4.Dao与Jet数据库引擎 5.Dao对象模型 6.远程数据对象RDO 7.Rdo对象模型 8.odbc api是什么 9.ODBC的结构 10.使用ODBC API访问数据库 11.ado数据对象 12.ado对象模型 13.ADO.NET简介 14.使用ADO.NET的基本方法 第八部分 vb.net的多线程 1.自由线程(Free Threading) 2.关于线程的参数和返回值的问题 3.vb.net的并发性问题 第九部分 vb.net的文件和出错处理 1.vb.net的出错处理 2.vb.net的多种出错处理(Multiple Exceptions) 3.vb.net的文件对象(file object) 4.vb.net文件处理的出错处理 5.检测文件的结束(Testing for End of File) 6.文件的静态方法(Static File Methods)
第一部分 Visual Basic.net基础 1.vb. net介绍 2.vb.net的优点 3.新建一个vb.net项目 4.编写第一个vb.net应用程序 第二部分 vb.net的语法部分 1.vb.net的Numeric数据类型 2.vb.net的Byte数据类型 3.vb.net的String数据类型 4.vb.net的Boolean数据类型 5.vb.net的Date数据类型 6.vb.net的Object数据类型 7.vb.net的用户自定义类型 8.vb.net数组定义 9.vb.net数组列表 10.vb.net的多维数组 11.vb.net类型转换函数 第三部分 visual basic.net的运算 程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算(concatenation)及逻辑运算(Logical),下面对这6种运算进行简单介绍。 1.vb.net的算术运算 2.vb.net的赋值运算符 3.vb.net的二进制运算符 4.vb.net的比较运算符 5.vb.net的连接运算符和逻辑运算符 6.vb.net运算符的优先级 (一) Visual basic.net的常量和变量 1.vb.net的常量 2.vb.net的变量 (二) Visual basic.net的流程和控制结构 1.vb.net条件分支语句 2.vb.net的循环语句 (三) vb.net的过程和函数 1.vb.net的Sub过程 2.vb.net的Funtion过程 3.在vb.net中调用过程 4.如何向过程参数 (四)vb.net的类和对象基础 第四部分 visual basic.net的常用控件 1.vb.net的Label控件 2.vb.net的Button控件 3.vb.net的Textbox控件 4.vb.net的MainMenu控件 5.vb.net的Checkbox控件 6.vb.net的Radiobutton控件 7.vb.net的GroupBox控件 8.vb.net的PictureBox控件 9.vb.net的ListBox控件 10.vb.net的CheckedListBox控件 11.vb.net的Combobox控件 12.vb.net的ListView控件 13.vb.net的TreeView控件 14.vb.net的ImageList控件 15.vb.net的Timer控件 16.vb.net的HScrollBar和VScrollBar控件 17.vb.net的ProgressBar控件 18.vb.net的ToolBar控件 19.vb.net的StatusBar控件 20.Vs 2005的ToolStrip控件 21.Vs 2005的StatusStrip控件 22.Vs 2005的MenuStrip控件 第六部分 vb.net的OOP结构 1.什么是oop 2.vb.net的面向对象性 3.vb.net的共享成员(Share Members) 4.类模块和标准代码模块的区别和比较 5.对象浏览器 (一) 建立和使用对象 1.vb.net对象的建立和销毁:对象的生命周期 2.设置和重设vb.net的属性 3.用方法来表现动作 4.vb.net对象变量的声明 5.对一个对象进行多种操作 6.使用New关键字 7.如何释放对对象的引用 8.如何把对象递到一个过程 (二) 在程序运行中得到一个类的信息: 用一个字符名称调用一个属性或者方法 (三) vb.net中的类、继承与多态性 1.vb.net中给一个类添加方法 2.命名属性、方法和事件 3.vb.net的事件和事件处理 4.类的继承(Inheritance) 5.vb.net继承的规则 6.用继承建立一个继承类 7.重载Windows控件 8.什么时候使用继承 9.什么是命名空间(Namespace) 10.vb.net继承的例子 11.vb.net中用继承实现多态性 12.vb.net中用接口实现多态性 第七部分 数据库访问技术 关于SQL语言的知识,请参考: sql语言教程及Sql语言基础 1.数据库基础知识 2.vb.net数据集(Datasets)的概念 3.什么是dao 4.Dao与Jet数据库引擎 5.Dao对象模型 6.远程数据对象RDO 7.Rdo对象模型 8.odbc api是什么 9.ODBC的结构 10.使用ODBC API访问数据库 11.ado数据对象 12.ado对象模型 13.ADO.NET简介 14.使用ADO.NET的基本方法 第八部分 vb.net的多线程 1.自由线程(Free Threading) 2.关于线程的参数和返回值的问题 3.vb.net的并发性问题 第九部分 vb.net的文件和出错处理 1.vb.net的出错处理 2.vb.net的多种出错处理(Multiple Exceptions) 3.vb.net的文件对象(file object) 4.vb.net文件处理的出错处理 5.检测文件的结束(Testing for End of File) 6.文件的静态方法(Static File Methods)

16,552

社区成员

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

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