Vb.net 在VB中,静态是什么意思?
在VB中,静态是什么意思 编辑-代码示例以供参考Vb.net 在VB中,静态是什么意思?,vb.net,Vb.net,在VB中,静态是什么意思 编辑-代码示例以供参考 Module Module1 Sub Main() Dim a = New Foo Dim b = New Foo Console.WriteLine(a.Boom) Console.WriteLine(a.Boom) Console.WriteLine(a.Boom) Console.WriteLine(b.Boom) End Su
Module Module1
Sub Main()
Dim a = New Foo
Dim b = New Foo
Console.WriteLine(a.Boom)
Console.WriteLine(a.Boom)
Console.WriteLine(a.Boom)
Console.WriteLine(b.Boom)
End Sub
End Module
Class Foo
Function Boom() As Integer
Static callCount As Integer = 0
callCount += 1
Return callCount
End Function
End Class
这是一种具有方法本地字段的方法。基本上,该值在调用之间保持,但在类的其他部分不可访问。有关一些实现信息,请参阅 编辑:乔纳森,你说得对,这些字段不必是共享/静态的。如果函数/子函数声明为共享,则它将是一个共享/静态字段。否则,它将是一个实例字段。无论哪种方式,它都是跨调用持久的,并且是方法的本地。下面的示例(继续)清楚地显示了这两种行为:
Class Fibonacci
Public Function FibonacciInstance() as Integer
Static i as Integer = -1
Static j as Integer = 1
Dim k as Integer
k = i + j
i = j
j = k
return k
End Function
Public Shared Function FibonacciShared() as Integer
Static i as Integer = -1
Static j as Integer = 1
Dim k as Integer
k = i + j
i = j
j = k
return k
End Function
Shared Sub Main()
Dim d as Integer
Dim a = New Fibonacci
Dim b = New Fibonacci
For d = 0 to 10
System.Console.WriteLine("a.FibonacciInstance: " & a.FibonacciInstance())
System.Console.WriteLine("b.FibonacciInstance: " & b.FibonacciInstance())
System.Console.WriteLine("a.FibonacciShared: " & a.FibonacciShared())
System.Console.WriteLine("b.FibonacciShared: " & b.FibonacciShared())
Next d
End Sub
End Class
这是一种具有方法本地字段的方法。基本上,该值在调用之间保持,但在类的其他部分不可访问。有关一些实现信息,请参阅 编辑:乔纳森,你说得对,这些字段不必是共享/静态的。如果函数/子函数声明为共享,则它将是一个共享/静态字段。否则,它将是一个实例字段。无论哪种方式,它都是跨调用持久的,并且是方法的本地。下面的示例(继续)清楚地显示了这两种行为:
Class Fibonacci
Public Function FibonacciInstance() as Integer
Static i as Integer = -1
Static j as Integer = 1
Dim k as Integer
k = i + j
i = j
j = k
return k
End Function
Public Shared Function FibonacciShared() as Integer
Static i as Integer = -1
Static j as Integer = 1
Dim k as Integer
k = i + j
i = j
j = k
return k
End Function
Shared Sub Main()
Dim d as Integer
Dim a = New Fibonacci
Dim b = New Fibonacci
For d = 0 to 10
System.Console.WriteLine("a.FibonacciInstance: " & a.FibonacciInstance())
System.Console.WriteLine("b.FibonacciInstance: " & b.FibonacciInstance())
System.Console.WriteLine("a.FibonacciShared: " & a.FibonacciShared())
System.Console.WriteLine("b.FibonacciShared: " & b.FibonacciShared())
Next d
End Sub
End Class
不。我刚检查过,它的行为绝对不像一个共享字段。如果我运行编辑问题中的代码,我会得到“1,2,3,1”。不。我刚检查过,它的行为绝对不像一个共享字段。如果我在编辑的问题中运行代码,我会得到“1,2,3,1”。