【问题标题】:receiving Object reference not set to an instance of an object on a nested class in vb接收对象引用未设置为vb中嵌套类上的对象实例
【发布时间】:2018-02-17 08:41:35
【问题描述】:

这是整个小提琴。 https://dotnetfiddle.net/f7VkDe

我有一个嵌套类。但是,每当我尝试设置内部类时,它都会不断报告内部类什么都不是。

Imports System

Public Module Module1
    Public Sub Main()
        Dim result As New WAWFExport()
        result.StartLine = New WAWFStartLine()
        result.StartLine.NbrTx = 1
        Console.WriteLine(result.StartLine.NbrTx)
    End Sub

     Public Class WAWFExport
        Public Property StartLine() As WAWFStartLine
        Get
            Return m_StartLine
        End Get
        Set(value As WAWFStartLine)
            m_StartLine = m_StartLine
        End Set
    End Property
    Private m_StartLine As WAWFStartLine
    end class

    Public Class WAWFStartLine
    Implements IWAWFFormatter

    Public Property NbrTx() As Integer
        Get
            Return m_NbrTx
        End Get
        Set(value As Integer)
            m_NbrTx = value
        End Set
    End Property
    Private m_NbrTx As Integer
    Private sl As WAWFStartLine



    Public Function format() As String Implements IWAWFFormatter.format
        Return String.Format("START*{0}^", m_NbrTx.ToString)
    End Function




End Class

    Friend Interface IWAWFFormatter
        Function format() As String
    End Interface


End Module

运行时异常(第 -1 行):对象引用未设置为实例 一个对象。

堆栈跟踪:

[System.NullReferenceException:对象引用未设置为 对象的实例。]

【问题讨论】:

标签: asp.net .net vb.net oop


【解决方案1】:

问题出在StartLine 属性的设置器上。 value 关键字是为 setter 输入保留的。

这应该是正确的修复m_StartLine = value

Public Class WAWFExport
    Public Property StartLine() As WAWFStartLine
    Get
        Return m_StartLine
    End Get
    Set(value As WAWFStartLine)
        m_StartLine = m_StartLine // Should be, m_StartLine = value
    End Set
End Property
Private m_StartLine As WAWFStartLine
end class

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多