2017-05-21 6 views
4

컬렉션에는 VBScript의 사전과 공통점이 있지만 그와 같은 것은 아닙니다.vbscript를 사용하여 ASP에서 Collection 객체는 실제로 무엇입니까?

컬렉션은 Session.Contents 속성과 같은 개체입니다.

사전은 다음 코드를 사용하여 생성 된 개체입니다.

Dim dictObj 
Set dictObj = CreateObject("Scripting.Dictionary") 

두 가지 유형의 개체와의 차이점과 공통점을 찾아 사용 방법을 알고 싶습니다.

이 유용한 기사를 찾았지만 VBScript를 사용하여 컬렉션이 실제로 ASP에 무엇인지 명확하게 이해하지 못했습니다.

Working with Collections

Using the Dictionary Class in VBA

내 질문 은 다음과 같습니다

  1. 의 VBScript에는 컬렉션 데이터 유형이 없습니까? 사전을 작성할 수는 있지만 콜렉션 오브젝트를 작성할 수는 없습니다.

  2. For Each를 사용하여 컬렉션을 반복 할 때 x은 무엇입니까? 컬렉션의 키 또는 컬렉션 항목 값은 무엇입니까?

    for each x in Session.Contents 
    
  3. 왜 이런 방식으로 컬렉션을 사용할 수 있습니까?

    Session("FirstName") 
    

    Session.Contents("FirstName") 
    
  4. 컬렉션 개체의 문서는 무엇입니까

    과 동일?

    내가 찾을 수있는 사전의 문서는 내가 컬렉션 개체 오해 할 수 this

, 난 그렇게 말해주십시오. 정말 고맙습니다.

답변

7

VBScript에 수집 데이터 형식이 있습니까?

수정. 기본 제공 컬렉션 데이터 형식은 없습니다. 그것은 VB에서 존재하지만 VBScript는 그것을 가지고 있지 않습니다. VBS에서 기존 개체의 컬렉션을 사용하여 작업 할 수 있지만 새 개체는 만들 수 없습니다. 동일한 기능을 제공하는 Scripting.Dictionary를 사용하십시오.

For Each를 사용하여 컬렉션을 반복 할 때 x, 컬렉션 키 또는 컬렉션 항목 값은 무엇입니까?

For Each 루프는 항상 컬렉션과 같은 개체에 대한 키를 제공합니다. 그런 다음 키를 사용하여 값에 액세스 할 수 있습니다. (대신 당신에게 가치를 준 경우에 대한-각 루프, 당신은 값이 무엇을 의미하는지 전혀 모르는 것 즉의 핵심에 도달 할 방법이 없습니다.)

Dim key, val 

For Each key In Session.Contents 
    val = Session(key) 
    Response.Write Server.HtmlEncode(key) & " = " & Server.HtmlEncode(val) & "<br>" 
Next 

왜 당신이 할 수있는 이 방법으로 컬렉션을 사용 하시겠습니까?

Session("FirstName") 

Session 개체의 기본 속성Contents 모음입니다 때문에. 그리고 컬렉션 객체의 기본 속성은 Item입니다.

기본 속성은 코드에서 속성의 이름을 지정하지 않지만 개체에서 괄호를 사용하는 경우 호출되는 속성입니다.

따라서 이들은 효과적으로 동일합니다

Session("FirstName") = "Foo" 
Response.Write(Session("FirstName") & "<br>") 

Session.Contents("FirstName") = "Bar" 
Response.Write(Session.Contents("FirstName") & "<br>") 

Session.Contents.Item("FirstName") = "Baz" 
Response.Write(Session.Contents.Item("FirstName") & "<br>") 

마지막 변형이 다른 두 가지 변종이 문법 설탕 동안 실제로 일어나는이다. Session.Contents 컬렉션은 일반 컬렉션을 기반으로하지만 일부 마법이 추가되었습니다. 예를 들어 누락 된 키에 액세스해도 오류가 발생하지 않습니다.

컬렉션 개체에 대한 문서는 무엇입니까?

마이크로 소프트는 VB 6.0 문서를 포기할뿐만 아니라 찾을 수없는 것이 무엇이든 만드는 데 큰 도움이되었습니다. 가장 가까운 것은 Collection Object in Office VBA의 문서입니다.

그렇지 않은 경우 기본 ASP에 적용되는 IIS Session object의 설명서가 있습니다. 관련 항목 : Storing and Removing Data from the ASP Session Object.

+0

* Session 개체의 기본 속성은 Contents 컬렉션입니다. 그리고 컬렉션 객체의 기본 속성은 Item입니다. * 그렇게 추측했습니다. 그러나 나는 어떤 문서가 정확하게 (심지어는 [microsoft document] (https://msdn.microsoft.com/en-us/library/ms525093 (v = vs.90) .aspx)에서도) 그것을 발견 할 수 없다. 그래서 그 지식을 어디에서 알 수 있습니까? – kinishinai

+1

수년간의 경력. 또한 COM 개체의 기본 속성에 대한 항목을 검색하는 경우 해당 항목에 대한 설명이 남아있는 설명서가 아직 남아 있습니다. – Tomalak