SemanticValue.Count Propiedad

Definición

Devuelve el número de objetos SemanticValue secundarios en la instancia de SemanticValue actual.Returns the number of child SemanticValue objects under the current SemanticValue instance.

public:
 property int Count { int get(); };
public int Count { get; }
member this.Count : int
Public ReadOnly Property Count As Integer

Valor de propiedad

El número de objetos SemanticValue secundarios bajo el SemanticValue actual.The number of child SemanticValue objects under the current SemanticValue.

Implementaciones

Ejemplos

En el ejemplo siguiente se muestra un controlador SpeechRecognized para un evento diseñado para controlar los comandos para cambiar el color de primer plano y de fondo.The following example shows a handler for a SpeechRecognized event designed to handle commands to change foreground and background color.

El controlador identifica frases reconocidas que no tienen ninguna estructura semántica subyacente detectando un Count de cero y un Value de null.The handler identifies recognized phrases that have no underlying semantic structure by detecting a Count of zero and a Value of null. A continuación, esta salida de reconocimiento se procesa directamente mediante el análisis del texto sin formato.This recognition output is then processed directly by parsing the raw text.

En otros casos, el controlador usa claves para obtener los componentes RGB de un nombre de color, para determinar si el comando cambiará el primer plano o el fondo, o para indicar que no se ha encontrado ninguna clave válida.In other cases, the handler uses keys to obtain the RGB components of a color name, to determine whether the command will change the foreground or background, or to indicate that no valid key was found.

  
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;  
  };  

Comentarios

Los resultados de reconocimiento que no hacen uso del análisis semántico siempre tienen Count un valor de cero, así como un Value de null.Recognition results that do not make use of semantic parsing always have a Count value of zero, as well as a Value of null.

Se aplica a