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 GrammarBuilder nesneleriyle Choices 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 Choicesile birlikte ve SemanticResultKey nesnelerinin SemanticResultValue kullanımı, bir için Grammaranlamsal yapı tasarlamanın en GrammarBuilder kolay yoludur. Bir tümceciğin anlam bilgilerine, üzerinde RecognizedPhraseözelliği aracılığıyla Semantics bir örneği SemanticValueelde edilerek erişilir.
Uyarı
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 , , intfloatveya stringolmalıdırbool. 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 SemanticResultValue için yalnızca değeri (bir örneği Objecttarafı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 GrammarBuilder örnek kullanılarak yapılan bir Grammar "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 SemanticResultValue belirten bir Object 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(String, Object)açıklamasına SemanticResultValue(GrammarBuilder, Object) bakın.
bir Grammar tarafından tanımada kullanılması için, tüm SemanticResultValue örneklerin tarafından Grammarkullanılan nesnelerden SemanticValue biriyle ilişkilendirilmesi gerekir. Bu, bir anlam anahtarı ile SemanticResultValueilişkilendirilerek gerçekleştirilir.
Semantik anahtarlar açıkça nesnesi kullanılarak SemanticResultKey öğesine SemanticResultValueeklenebilir. 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 SemanticResultKeybir tarafından etiketlenmiş olsun, ayarlamak Valueiç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 SemanticResultValue örnekten GrammarBuilder 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) |