SemanticResultValue Sınıf
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.
Bir anlamsal değeri temsil eder ve isteğe bağlı olarak değeri konuşma tanıma dil bilgisinin bir bileşeniyle ilişkilendirir.
public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
- Devralma
-
SemanticResultValue
Örnekler
Aşağıdaki örnek Grammar , "Ayarla/Değiştir/Ön Plan/Arka Plan Değiştir ... [renk listesi]". SemanticResultValueve SemanticResultKey örnekleri (ve Choices nesneleriyle GrammarBuilder birlikte) tanımada ayrıştırılabilir semantiği tanımlamak için kullanılır. Ayrıştırılan semantik, hangi rengin istendiğini ve ön planın mı yoksa arka planın mı değiştirileceğini belirler.
private Grammar FgBgColorGrammar()
{
Grammar grammar = null;
// Allow the command to begin with set, alter, change.
Choices introChoices = new Choices();
foreach (string introString in new string[] { "Change", "Set", "Alter" })
{
GrammarBuilder introGB = new GrammarBuilder(introString);
introChoices.Add(new SemanticResultValue(introGB, String.Format("Command: {0}", introString)));
}
GrammarBuilder cmdIntro = new GrammarBuilder(introChoices);
// Define the arguments for the command to select foreground or background
// and to change their color as semantic values.
Choices fgOrbgChoice = new Choices();
GrammarBuilder backgroundGB=new GrammarBuilder("background");
backgroundGB.Append(new SemanticResultValue(true));
fgOrbgChoice.Add(backgroundGB);
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground", false));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgBool", fgOrbgChoice);
Choices colorChoice = new Choices();
foreach (string colorName in System.Enum.GetNames(typeof(KnownColor)))
{
// Use implicit conversion of SemanticResultValue to GrammarBuilder.
colorChoice.Add(
(GrammarBuilder) (new SemanticResultValue(colorName, (Color.FromName(colorName)).Name)));
}
// Create a GrammarBuilder for CmdArgs to be appended to CmdIntro using
// semantic keys.
GrammarBuilder cmdArgs = new GrammarBuilder();
cmdArgs.Append(new SemanticResultKey("BgOrFgBool", fgOrbgChoice));
cmdArgs.AppendWildcard();
cmdArgs.Append(new SemanticResultKey("colorStringList", colorChoice));
GrammarBuilder cmds =
GrammarBuilder.Add(
cmdIntro,
new GrammarBuilder(new SemanticResultKey("Cmd Args", cmdArgs)));
grammar = new Grammar(cmds);
grammar.Name = "Tree [Set,change,alter] [foreground,background] * color";
return grammar;
}
Açıklamalar
ve SemanticResultValueile birlikte ve SemanticResultKey nesnelerinin GrammarBuilder kullanımı, bir için Choicesanlamsal yapı tasarlamanın en Grammar kolay yoludur. Bir tümceciğin anlam bilgilerine, üzerinde SemanticValueözelliği aracılığıyla Semantics bir örneği RecognizedPhraseelde edilerek erişilir.
Note
Nesneler tarafından SemanticResultValue yönetilen değerler, oluşturucularına geçirilen örnekler tarafından Object tanımlanır. Bunun temel türü Object , , boolintveya floatolmalıdırstring. Başka herhangi bir tür, ile bir Grammar örneğin oluşturulmasını SemanticResultValueengeller.
Örneğin tipik kullanımı SemanticResultValue , örneği tümcecik, kural veya nesne gibi bir öğesinin tanınabilir Grammarbir Choices bileşeniyle ilişkilendirir. İlişkili bileşen bir tanıma işleminin parçası olarak kullanılıyorsa, SemanticResultValue döndürülen tümceciğin semantiğinde bir değer tanımlamak için kullanılır.
örneğini oluşturmak SemanticResultValueiçin kullanılan oluşturucuya bağlı olarak bir dilbilgisi öğesiyle ilişkilendirmek SemanticResultValue için iki temel yöntem vardır.
Bir nesneyi oluşturmak Object için yalnızca değeri (bir örneği SemanticResultValuetarafından belirtilen) kullanılıyorsa, SemanticResultValue nesnesine GrammarBuilder ek olarak kendisinden önceki dil bilgisi bileşeniyle ilişkilendirilir.
Örneğin, aşağıdaki kod parçasında, bu Grammar örnek kullanılarak yapılan bir GrammarBuilder "arka plan" sözcüğünü tanırsa, tanınan tümcecik semantiğinde değeri
trueayarlanır.GrammarBuilder backgroundGB=new GrammarBuilder("background"); backgroundGB.Append(new SemanticResultValue(true));Daha fazla bilgi için açıklamasına SemanticResultValue(Object)bakın.
Bir dize değeri tümceciği veya belirli GrammarBuilder bir örnek, değeri Object belirten bir SemanticResultValue ile birlikte kullanılırsa, bu değer otomatik olarak dize değeri tümceciği veya GrammarBuilder örneğiyle ilişkilendirilir. Tümcecik veya GrammarBuilder nesne tanıma işleminde kullanılıyorsa, değer tanınan tümceciğin semantiğine atanır.
Aşağıdaki örnek bunu gösterir ve ve için açık çağrıları kullanan önceki örnekle AppendSemanticResultValue(Object)işlevsel olarak eşdeğerdir. Tanıma mantığı "background" sözcüğünü kullanıyorsa, değer
truetanınan semantiğine eklenir.fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));Daha fazla bilgi için ve SemanticResultValue(GrammarBuilder, Object)açıklamasına SemanticResultValue(String, Object) bakın.
bir Grammar tarafından tanımada kullanılması için, tüm SemanticResultValue örneklerin tarafından SemanticValuekullanılan nesnelerden Grammar biriyle ilişkilendirilmesi gerekir. Bu, bir anlam anahtarı ile SemanticResultValueilişkilendirilerek gerçekleştirilir.
Semantik anahtarlar açıkça nesnesi kullanılarak SemanticResultValue öğesine SemanticResultKeyeklenebilir. SemanticResultValue bir anahtara açıkça eklenmemiş örnekler, varsayılan SemanticValueöğesinin kök anahtarına eklenir.
SemanticResultValue varsayılan kök anahtarla veya belirli Valuebir tarafından etiketlenmiş olsun, ayarlamak SemanticResultKeyiçin bir kullanıldıktan sonra, bu değer değiştirilmemelidir veya tanıma işlemleri sırasında bir özel durum oluşur.
Aşağıdaki örnek, bir öğesinin kökünü ValueGrammarayarlayıp değiştirdiğinden bir özel duruma neden olur.
GrammarBuilder gb=new GrammarBuilder();
gb.Append(new SemanticResultValue("One"));
gb.Append(new SemanticResultValue("Two"));
Öte yandan, aşağıdaki örnekteki koda izin verilir. birden çok örneğini SemanticResultValuetanımlasa da, bunlar bir Choices nesneye eklenir ve anahtarın bgOrfgTextdeğerini ayarlamak için yalnızca bir tane kullanılır.
Choices fgOrbgChoice = new Choices();
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);
Oluşturucular
| Name | Description |
|---|---|
| SemanticResultValue(GrammarBuilder, Object) |
sınıfının yeni bir örneğini SemanticResultValue başlatır ve bir semantik değeri bir GrammarBuilder nesneyle ilişkilendirir. |
| SemanticResultValue(Object) |
sınıfının yeni bir örneğini SemanticResultValue başlatır ve bir anlam değeri belirtir. |
| SemanticResultValue(String, Object) |
sınıfının yeni bir örneğini SemanticResultValue başlatır ve bir semantik değeri bir String nesneyle ilişkilendirir. |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToGrammarBuilder() |
Geçerli GrammarBuilder örnekten SemanticResultValue yapılan bir örneğini döndürür. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |