本文介绍了将索引值传递给函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 根据主题,这就是我想要做的事情。 我在这里进行实验,所以我知道代码不完美&可能根本不工作,但我正在一点一点地工作,目前我只需要将Index值输入函数 我有一个循环如下...... 对于 Ix = 0 myArrayLen - 1 如果 myXml1.Value.Chars(Ix)= Y 然后 myWordData = GetNewsletterHeader(Ix) MsgBox(myWordData) 结束 如果 下一步 和一个函数如下...... 函数 GetNewsletterHeader( ByRef Ix As Int16 ) As String Dim myXml2 As XmlTextReader = 新 XmlTextReader(myDataFolder + NewsLetter Items.xml) myItem = 项目 + Ix while (myXml2.Read()) If myXml2.IsStartElement()然后 如果 myXml2.Name = myItem 那么 GetNewsletterHeader = myXml2.Value.ToString 结束 如果 结束 如果 循环 结束 功能 它当前抛出异常从字符串转换项目到类型''Double''无效。,大概是因为Ix是指针而不是实际值。 div class =h2_lin>解决方案 1。删除 ByRef 并替换为 ByVal 。 函数GetNewsletterHeader(ByVal Ix As Int16)As String 2.确保 Ix 在 For..Next 循环范围内声明为Int16 3.在函数GetNewsLetterHeader 中,添加以下行 将dim myItem作为字符串 4.将作业更改为 myItem 改为 myItem =Item& Ix.ToString 5.将以下行添加为包含此代码的Visual Studio文档文件的第一行 Option Strict 6.告诉我们哪一行会出错,哪些是Visual Studio Debugger显示错误中涉及的变量的值。 好的,异常措辞特别好,你不会遇到C#的问题,但问题是与 myItem =Item+ Ix 你应该使用 myItem = 项目 + Ix .ToString 你没有显示myItem的声明,但我认为它是这样的: Dim myItem as Double 由于编译错误正在谈论关于将字符串常量Item转换为double,以及为什么它不能这样做。由于Ix是Int16,myItem必须是双精度。 As per the Subject, that is what I want to do.I am experimenting here, so I know the code is not perfect & may not even work at all, but I am working on it bit by bit and at the moment I just need to get the Index value into the FunctionI have a Loop as follows ...For Ix = 0 To myArrayLen - 1 If myXml1.Value.Chars(Ix) = "Y" Then myWordData = GetNewsletterHeader(Ix) MsgBox(myWordData) End IfNextand a Function as follows ...Function GetNewsletterHeader(ByRef Ix As Int16) As String Dim myXml2 As XmlTextReader = New XmlTextReader(myDataFolder + "NewsLetter Items.xml") myItem = "Item" + Ix Do While (myXml2.Read()) If myXml2.IsStartElement() Then If myXml2.Name = myItem Then GetNewsletterHeader = myXml2.Value.ToString End If End If LoopEnd FunctionIt currently throws an exception "Conversion from string "Item" to type ''Double'' is not valid.", presumably because the Ix is a pointer rather than a real value. 解决方案 1. Remove the ByRef and replace with ByVal.Function GetNewsletterHeader(ByVal Ix As Int16) As String2. Ensure that Ix is declared as Int16 in the scope of the For..Next loop3. In the Function GetNewsLetterHeader, add the following lineDim myItem as string4. Change the assignment to myItem tomyItem = "Item" & Ix.ToString5. Add the following line as the very first line of the Visual Studio document file that contains this codeOption Strict6. Let us know which line gets the error and what the Visual Studio Debugger displays for the values of the variables that are involved in the error.Ok, the exception is particularly nicely worded and you wouldn''t get the problem with C# but the problem is with myItem = "Item" + IxYou should be using myItem = "Item" + Ix.ToStringYou don''t show your declaration of myItem, but I assume it is something like:Dim myItem as DoubleSince the compiler error is talking about converting a string constant "Item" to a double, and why it can''t do it. Since Ix is an Int16, myItem must be a double. 这篇关于将索引值传递给函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-19 02:33