SemanticValue.ContainsKey(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli SemanticValue örnek koleksiyonunun belirli bir anahtar dizesine sahip bir alt SemanticValue örnek içerip içermediğini gösterir.
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
Parametreler
- key
- String
String, geçerli SemanticValuealtında alt örneğini SemanticValue tanımlamak için kullanılan anahtar dizesini içerir.
Döndürülenler
Dizeyle etiketlenmiş bir alt örnek SemanticValue bulunursa ( yoksa) false
döndürürbool
true
.key
Uygulamalar
Örnekler
Aşağıdaki örnekte, ön plan ve arka plan rengini değiştirmek için komutları işlemek üzere tasarlanmış bir SpeechRecognized olay işleyicisi gösterilmektedir.
Tanınan ancak anlamsal yapısı olmayan tümcecikleri işledikten sonra, işleyici (applyChgToBackground
, colorRGBValueList
veya colorStringList)
) kullanarak ContainsKey uygun anahtarların varlığını denetler ve ardından anlamsal olarak düzenlenmiş verileri işler.
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;
};
Açıklamalar
Verilere çalışma zamanında yalnızca anahtar değerine göre erişebilirsiniz; örneğin semantiği denetlemek için["myKey"]. değeridir ve bu bir özel durum oluşturur. Belirli bir örneğiyle SemanticValuekullanmadan Item[] önce nesnesini ile ContainsKey sorgulamanızı öneririz.