Работают ли локальные переменные в разделяемом методе как статическая переменная в C? - PullRequest
0 голосов
/ 23 августа 2011

Будет ли список в этом общем методе сохранять свое состояние в течение всей жизни метода?Или новый список будет создаваться при каждом вызове этого метода?

Protected Shared Function newResxNodes(ByVal newName As String, ByVal newValue As String, Optional ByVal newComment As String = "") As List(Of ResXDataNode)

    Dim newResxNodesList As List(Of ResXDataNode) = New List(Of ResXDataNode)

    Dim newResxNode As ResXDataNode = New ResXDataNode(newName, newValue)
    If newComment <> String.Empty Then
        newResxNode.Comment = newComment
    End If

    newResxNodesList.Add(newResxNode)

    Return newResxNodesList
End Function

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Я сделал тест, и он возвращает 3 строки.

Module Module1

Class b

    Public Sub New()
        Console.WriteLine("New")
    End Sub

End Class

Class a

    Public Shared Sub Test()

        Dim c As b = New b

    End Sub

End Class

Sub Main()

    a.Test()
    a.Test()
    a.Test()

    Console.ReadLine()

End Sub

End Module
0 голосов
/ 23 августа 2011

Нет, это не работает как статические переменные в C. Это будет новый список для каждого вызова.Если вы хотите сохранить список и элементы списка, создайте поле общего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...