2017-04-26 47 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開始枚舉。「

相關問題