2017-04-26 17 views
3

我通过阅读指南https://docs.botframework.com/en-us/csharp/builder/sdkreference/forms.html编写FormFlow演示程序,它工作正常。 在演示"Simple Sandwich Bot"Sandwich.cs,有枚举:在FormFlow中使用List <T>时丢失第一个选项,BotFramework

public List Toppings; 

public List Sauce; 

public enum ToppingOptions 
{ 
    Avocado, BananaPeppers, Cucumbers, GreenBellPeppers, Jalapenos, 
    Lettuce, Olives, Pickles, RedOnion, Spinach, Tomatoes 
}; 

public enum SauceOptions 
{ 
    ChipotleSouthwest, HoneyMustard, LightMayonnaise, RegularMayonnaise, 
    Mustard, Oil, Pepper, Ranch, SweetOnion, Vinegar 
}; 

当代码运行,并选择ToppingOptionsSauceOptions, 第一个选项是missing.Is这一个错误? a picture to show the result

+0

在示例中,他们将列表声明为'ToppingOptions'值,使用'List '而不是List'',如果它仍然不起作用,请尝试更改枚举的第一个值并设置它= 1,并保持其他人那样 –

+0

谢谢你的回答。你说得对,指导原则是描述:“如果一个字段是基于一个枚举,它不能为空,那么在枚举中的0值被认为是null你应该从1开始你的枚举。“ – cherish

+0

很高兴帮助,我将评论重写为aswer,以便其他人在批准它时可以看到正确答案 –

回答

0

首先,在本例中,他们申报的列表作为“ToppingOptions的价值,使用的List<ToppingOptions>代替List而已,如果它不仍能正常工作,尝试改变枚举和集合的第一个值它= 1,并保持其他人一样,

public enum ToppingOptions 
{ 
    Avocado = 1, BananaPeppers, Cucumbers, GreenBellPeppers, Jalapenos, 
    Lettuce, Olives, Pickles, RedOnion, Spinach, Tomatoes 
}; 

public enum SauceOptions 
{ 
    ChipotleSouthwest = 1, HoneyMustard, LightMayonnaise, RegularMayonnaise, 
    Mustard, Oil, Pepper, Ranch, SweetOnion, Vinegar 
}; 

当您在评论说,的guidlines是形容:“如果一个字段是基于一个枚举,它不是空的,那么在枚举中的0值被认为是null,你应该从1开始枚举。“

相关问题