我有一个Cortana XML文件,我需要输入一个数字。我该怎么做以确保我可以将其转换为数字?
<Command Name="AddMoney">
<Example> Add 10 dollars </Example>
<ListenFor> add {amount} {currency} </ListenFor>
<Feedback> Adding some money </Feedback>
<Navigate/>
</Command>
<PhraseList Label="currency">
<item>dollar</item>
<item>euro</item>
<item>pound</item>
</PhraseList>
<PhraseList Label="amount">
</PhraseList>
答案 0 :(得分:4)
我找到了接收数字的方法,但这并不完美。
<PhraseTopic Label="amount" Scenario="Commands">
<Subject>Phone Number</Subject>
</PhraseTopic>
注意我使用 PhraseTopic 而不是 PhraseList 。我真的不知道哪个Scenario
在这里最好,但我发现Commands
比没有Scenario
设置更好的结果。由于某些奇怪的原因,PhraseTopic标签必须放在所有PhraseList标签之后......
在尝试主题时,自动完成功能会显示一些选项,其中最有希望的是Date/Time
,Addresses
和Phone Number
。当尝试多个科目时,我永远不会有匹配,但使用&#34;电话号码&#34; (或者只是&#34;数字&#34;即使没有这样的选项)我能够一致地接收数字值。
这个数字是以数字形式出现的,所以我只需要int.TryParse(myText, out myNumber)
并使用它或说出一些&#34;无效数字输入&#34;。
请注意,即使主题和场景限制,也可以输入任何内容......下面的内容将有效:
"Hey Cortana, MyAppName add blah blah blah dollars"
金额实际上是"blah blah blah"