이 공유 메서드의 목록은 메서드 수명 동안 유지됩니까? 또는이 메소드가 호출 될 때마다 새 목록이 작성됩니까?공유 메서드의 로컬 변수가 C의 정적 변수처럼 작동합니까?
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
공유 클래스 (및 변수)가 해당 웹 페이지의 모든 세션/인스턴스에서 액세스 할 수 있다는 사실을 알고있었습니다. 마찬가지로 그 사용자의 세션에 반대, 내가 무엇을 목표로했는지. – dotnetN00b
@ dotnetN00b 정적 필드로서의리스트조차도 각 포스트 백에서 파괴되고 다시 만들어 질 것이다. 사용자 세션뿐만 아니라 웹 애플리케이션에서 목록을 공유하려는 경우 애플리케이션 상태 컬렉션을 살펴보십시오. 'Application [ "someKey"] = list'이 msdn 페이지를 확인하십시오. http://msdn.microsoft.com/en-us/library/ms178594.aspx –
bar와 같은 보호 된 공유 기능 foo (x는 문자열) C#에서 내부 정적 Bar Foo (string x). 어느 경우에도 메소드 호출 자체의 외부에 유지되는 메소드의 내부 범위 변수는 없습니다. 또한 VB에서 공유 메서드 만 사용하여 클래스를 만드는 경우 모듈로 만들고 Shared 키워드를 제거합니다. 이렇게하면 C#의 정적 클래스에서 수행해야하는 것처럼 기본 공용 생성자도 제거됩니다. 싱글 톤 개체를 원하면 클래스 수준에서 공유/정적으로 선언하고 Lazy (Of T)를 사용하여 단일 활성화를 지원하십시오. –