SemanticValue.Item[String] Propriété

Définition

Retourne les instances de SemanticValue enfants qui appartiennent à l’objet SemanticValue actuel.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

Paramètres

key
String

Clé pour un KeyValuePair<String, SemanticValue> contenu dans l'instance actuelle de la SemanticValue.A key for a KeyValuePair<String, SemanticValue> contained in the current instance of SemanticValue.

Valeur de propriété

Retourne un enfant de l’actuel SemanticValue qui peut être indexé en tant que partie d’une paire clé / valeur : KeyValuePair<chaîne,SemanticValue>.Returns a child of the current SemanticValue that can be indexed as part of a key value pair: KeyValuePair<String,SemanticValue>.

Implémente

Exceptions

Levée si aucun membre enfant de l'instance actuelle de SemanticValue ne possède la clé correspondante au paramètre key .Thrown if no child member of the current instance of SemanticValue has the key matching the key parameter.

Levée si le code tente de modifier la SemanticValue située à un index donné.Thrown if code attempts to change the SemanticValue at a given index.

Exemples

L’exemple suivant montre un gestionnaire pour un SpeechRecognized événement conçu pour gérer des commandes pour modifier la couleur de premier plan et d’arrière-plan.The following example shows a handler for a SpeechRecognized event designed to handle commands to change foreground and background color.

Après la gestion des expressions reconnues qui n’ont pas de structure sémantique, le gestionnaire vérifie la présence de ContainsKey clésapplyChgToBackgroundappropriées colorRGBValueListà l' colorStringList)aide de (, ou Item[String] , puis utilise la propriété pour obtenir les nœuds. avec les informations nécessaires.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.

L’utilisation de Item[String] est mise en surbrillance ci-dessous.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;  
  };  

Remarques

Le Item[String] est en lecture seule et génère des exceptions si les membres sont modifiés.The Item[String] is read-only and generates exceptions if members are modified.

Vous pouvez uniquement accéder aux données par valeur de clé au moment de l’exécution, et non pas au moment de la semantic["myKey"].Valuecompilation, par exemple pour vérifier.You can only access data by key value at run-time, not at compile-time, for example to check semantic["myKey"].Value. La spécification d’une clé qui n’est pas présente génère une exception.Specifying a key that is not present generates an exception.

Pour détecter la présence d’une clé donnée, utilisez la ContainsKey propriété sur une SemanticValue instance.To detect the presence of a given key, use the ContainsKey property on an SemanticValue instance.

S’applique à