有人能告诉我正确的方法吗?
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始终显示对象变量或未设置块变量。 该代码有什么问题?
答案 0 :(得分:0)
UnsignedAdd
是一个局部变量但在那里没有任何地方可以为它赋值,因此它永远不会有值。
这也是一些相当狡猾的代码。当然你知道UnsignedAdd
的类型是什么,所以你应该能够将它声明为该类型。我无法真正看到Static
变量的理由。