SemanticValue.Item[String] SemanticValue.Item[String] SemanticValue.Item[String] SemanticValue.Item[String] Property

정의

자식 SemanticValue에 현재 속한 인스턴스 SemanticValue를 반환합니다.Returns child SemanticValue instances that belong to the current SemanticValue.

public:
 property System::Speech::Recognition::SemanticValue ^ default[System::String ^] { System::Speech::Recognition::SemanticValue ^ get(System::String ^ key); void set(System::String ^ key, System::Speech::Recognition::SemanticValue ^ value); };
public System.Speech.Recognition.SemanticValue this[string key] { get; set; }
member this.Item(string) : System.Speech.Recognition.SemanticValue with get, set
Default Public Property Item(key As String) As SemanticValue

매개 변수

key
String String String String

SemanticValue의 현재 인스턴스에 포함된 KeyValuePair<String, SemanticValue>의 키입니다.A key for a KeyValuePair<String, SemanticValue> contained in the current instance of SemanticValue.

속성 값

현재 자식 항목을 반환 SemanticValue 키 값 쌍의 일부로 인덱싱할 수 있는: KeyValuePair<문자열SemanticValue>합니다.Returns a child of the current SemanticValue that can be indexed as part of a key value pair: KeyValuePair<String,SemanticValue>.

구현

예외

key 매개 변수와 일치하는 키가 있는 SemanticValue의 현재 인스턴스의 자식 멤버가 없으면 throw됩니다.Thrown if no child member of the current instance of SemanticValue has the key matching the key parameter.

지정된 인덱스에서 코드의 SemanticValue를 변경하려고 할 경우 throw됩니다.Thrown if code attempts to change the SemanticValue at a given index.

예제

다음 예제에 대 한 처리기를 SpeechRecognized 이벤트 전경색과 배경색을 변경 하는 명령 처리 하도록 설계 되었습니다.The following example shows a handler for a SpeechRecognized event designed to handle commands to change foreground and background color.

의미 체계 구조가 없는 인식할 수 있는 구 처리 후 처리기를 사용 하 여 적절 한 키의 존재 여부 확인 ContainsKey (applyChgToBackgroundcolorRGBValueList, 또는 colorStringList)를 사용 하 여는 Item[String] 속성 노드를 가져오려면 필수 정보입니다.After handling recognized phrases that have no semantic structure, the handler checks for the presence of appropriate keys using ContainsKey (applyChgToBackground, colorRGBValueList, or colorStringList), and then uses the Item[String] property to obtain the nodes with needed information.

사용 Item[String] 아래 강조 표시 됩니다.The use of Item[String] is highlighted below.


newGrammar.SpeechRecognized +=  
  delegate(object sender, SpeechRecognizedEventArgs eventArgs)   
  {  

    // Retrieve the value of the semantic property.  
    bool changeBackGround = true;  
    string errorString = "";  
    SemanticValue semantics = eventArgs.Result.Semantics;  

    Color newColor = Color.Empty;  

    try   
    {  
      if (semantics.Count == 0 && semantics.Value==null)  
      {  
        // Signifies recognition by a grammar with no semantics.  
        // Parse the string, assuming that the last word is color,  
        //  searching for background or foreground in input.  
        if (eventArgs.Result.Text.Contains("foreground"))   
        {  
          changeBackGround = false;  
        }  
        string cName = eventArgs.Result.Words[eventArgs.Result.Words.Count - 1].Text;  
        newColor = Color.FromName(cName);  

      }  
      else if (semantics.ContainsKey("colorStringList") ^ semantics.ContainsKey("colorRGBValueList"))   
      {  

        // Determine whether to change background or foreground.  
        if (semantics.ContainsKey("applyChgToBackground"))   
        {  
          changeBackGround = semantics["applyChgToBackground"].Value is bool;  
        }  

        // Get the RGB color value.  
        if (semantics.ContainsKey("colorStringList"))   
        {  
          newColor = Color.FromName((string)semantics["colorStringList"].Value);  
        }  
        if (semantics.ContainsKey("colorRGBValueList"))   
        {  
          newColor = System.Drawing.Color.FromArgb((int)semantics["colorRGBValueList"].Value);  
        }  
      }  
      else   
      {  

        // Throw an exception if the semantics do not contain the keys we  
        // support.  
        throw(new Exception("Unsupported semantic keys found."));  
      }  
    }  

    catch (Exception exp)   
    {  
      MessageBox.Show(String.Format("Unable to process color semantics.:\n{0}\n", exp.Message));  
      return;  
    }  

    // Change colors, either foreground or background.  
    if (changeBackGround)   
    {  
      BackColor = newColor;  
      float Bright = BackColor.GetBrightness();  
      float Hue = BackColor.GetHue();  
      float Sat = BackColor.GetSaturation();  
      // Make sure that text is readable regardless of background.  
      if (BackColor.GetBrightness() <= .50)   
      {  
        ForeColor = Color.White;  
      }  
      else   
      {  
        ForeColor = Color.Black;  
      }  
    }  
    else   
    {  
      ForeColor = newColor;  
      float Bright = ForeColor.GetBrightness();  
      float Hue = ForeColor.GetHue();  
      float Sat = ForeColor.GetSaturation();  

      // Make sure that text is readable regardless of the foreground.  
      if (ForeColor.GetBrightness() <= .50)   
      {  
        BackColor = Color.White;  
      }  
      else   
      {  
        BackColor = Color.Black;  
      }  
    }  
    return;  
  };  

설명

Item[String] 읽기 전용 이며 멤버 수정 되는 경우 예외를 생성 합니다.The Item[String] is read-only and generates exceptions if members are modified.

예를 확인 하려면 컴파일 시간에 아닐 실행 시간에 키 값으로 데이터를만 액세스할 수 있습니다 semantic["myKey"].Value합니다.You can only access data by key value at run-time, not at compile-time, for example to check semantic["myKey"].Value. 존재 하지 않는 키를 지정 하면 예외가 발생 합니다.Specifying a key that is not present generates an exception.

지정된 된 키의 존재를 검색 하려면 사용 합니다 ContainsKey 속성에는 SemanticValue 인스턴스.To detect the presence of a given key, use the ContainsKey property on an SemanticValue instance.

적용 대상