none
《VB.NET》问题。如何调用过程中的数组? RRS feed

  • 问题

  • Public Class Form1
    
        Sub sub注释(ByVal 内容 As String, ByRef 选择_起点() As UShort, ByRef 选择_长度() As UShort)
    
             REM 过程忽略
    
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim str输入 As String = RichTextBox1.Text
            Dim ushort起点(), ushort长度() As UShort
    
            sub注释(str输入, ushort起点, ushort长度)
            REM 提示:变量“ushort起点”在赋值前按引用传递。可能会在运行时导致 null 引用异常。
            REM 提示:变量“ushort长度”在赋值前按引用传递。可能会在运行时导致 null 引用异常。
    
    
        End Sub
    
    End Class


    2016年9月12日 13:41

答案

全部回复

  • 值类型变量,UShort,Int等一般不需要调用时ByRef,除非确实需要方法执行完成之后的返回值。                                   这一句会导致装箱(boxing),sub注释(str输入, ushort起点, ushort长度) 

    这里有警告的原因是方法的后面两个参数变量没有赋值。在这个方法调用之前加上 ushort起点=0 ushort长度=0 即可。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年9月13日 0:05
  • 肯定要加上ByRef

    ByRef一般是你需要对值类型进行引用操作才需要添加,数组自身是一个大的引用类型(默认继承于System.Array),自然确实不需要ByRef,直接使用就可以了。

    @风中秀:

    另外,你的数组需要初始化,否则默认是Nothing。特别是在ByRef(如果坚持需要添加此关键词)的时候——因为ByRef必须初始化之后方可使用。

    另外,你的数组最好指定类型,养成编程的好习惯哦:

      Dim ushort起点() As UShort, ushort长度() As UShort


    ASP.NET Forum
    StackOverFlow
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download


    2016年9月19日 5:05
    版主