对象变量或With块变量未设置visual basic.net

时间:2014-06-23 23:08:05

标签: vb.net blowfish

有人能告诉我正确的方法吗?

Private Function F(ByVal x As Integer) As Integer

    Static UnsignedAdd As Object
    Static xb(3) As Byte

    Call CopyMem(xb(0), x, 4)

    If (m_RunningCompiled) Then
        Return (CShort((m_sBox(0, xb(3)) + m_sBox(1, xb(2))) _ 
                  Xor m_sBox(2, xb(1))) + m_sBox(3, xb(0)))
    Else
        Return UnsignedAdd(UnsignedAdd(m_sBox(0, xb(3)), 
                  m_sBox(1, xb(2))) Xor m_sBox(2, xb(1)), m_sBox(3, xb(0)))
    End If

End Function

返回

UnsignedAdd(UnsignedAdd(m_sBox(0, xb(3)), 
        m_sBox(1, xb(2))) Xor m_sBox(2, xb(1)), m_sBox(3, xb(0)))

未设置且vb.net始终显示对象变量或未设置块变量。 该代码有什么问题?

1 个答案:

答案 0 :(得分:0)

UnsignedAdd是一个局部变量但在那里没有任何地方可以为它赋值,因此它永远不会有值。

这也是一些相当狡猾的代码。当然你知道UnsignedAdd的类型是什么,所以你应该能够将它声明为该类型。我无法真正看到Static变量的理由。