SemanticValue.ContainsKey(String) Methode

Definitie

Geeft aan of de huidige SemanticValue exemplaarverzameling een onderliggend SemanticValue exemplaar met een bepaalde sleuteltekenreeks bevat.

public:
 virtual bool ContainsKey(System::String ^ key);
public bool ContainsKey(string key);
abstract member ContainsKey : string -> bool
override this.ContainsKey : string -> bool
Public Function ContainsKey (key As String) As Boolean

Parameters

key
String

String bevat de sleuteltekenreeks die wordt gebruikt om een onderliggend exemplaar onder SemanticValue de huidige SemanticValuete identificeren.

Retouren

Retourneert een bool, true als een onderliggend exemplaar SemanticValue met de tekenreeks key wordt gevonden, false als dat niet het geval is.

Implementeringen

Voorbeelden

In het volgende voorbeeld ziet u een handler voor een SpeechRecognized gebeurtenis die is ontworpen voor het afhandelen van opdrachten om de voorgrond- en achtergrondkleur te wijzigen.

Na het verwerken van zinnen die worden herkend maar geen semantische structuur hebben, controleert de handler op de aanwezigheid van de juiste sleutels met behulp ContainsKey van (applyChgToBackgroundcolorRGBValueListof, ofcolorStringList), en verwerkt vervolgens de semantisch ingedeelde gegevens.

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 semantics 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 Foreground.
      if (ForeColor.GetBrightness() <= .50)
      {
        BackColor = Color.White;
      }
      else
      {
        BackColor = Color.Black;
      }
    }
    return;
  };

Opmerkingen

U hebt tijdens runtime alleen toegang tot gegevens op sleutelwaarde, bijvoorbeeld om semantisch["myKey"] te controleren. Waarde en hiermee wordt een uitzondering gegenereerd. U wordt aangeraden een query uit te voeren op het object voordat ContainsKey u het gebruikt Item[] met een bepaald exemplaar van SemanticValue.

Van toepassing op