2017-04-26 2 views
3

Ich schreibe eine FormFlow Demo durch Überprüfung der Richtlinien https://docs.botframework.com/en-us/csharp/builder/sdkreference/forms.html, es funktioniert gut. In der Demo "Simple Sandwich Bot", Sandwich.cs gibt es Enum:Fehlende die erste Option bei Verwendung Liste <T> in FormFlow, 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 
}; 

, wenn der Code ausgeführt wird, und wahl ToppingOptions und SauceOptions, die erste Option ist missing.Is das ein Fehler? a picture to show the result

+0

In diesem Beispiel deklarieren sie die Liste als 'ToppingOptions' -Wert, verwenden Sie 'List ' anstelle von List only, falls es nicht funktioniert, versuchen Sie den ersten Wert der enums zu ändern und setzen Sie ihn = 1, und behalte die anderen so –

+0

danke für die answer.You sind richtig und die Leitlinien ist beschreiben: "Wenn ein Feld auf einer Enumeration basiert und es nicht Nullable ist, dann wird der 0-Wert in der Enumeration als null angesehen und du solltest deine Zählung mit 1 beginnen. " – cherish

+0

Froh, dass es geholfen hat, ich schreibe den Kommentar als eine Antwort, so dass andere Leute die richtige Antwort sehen können, wenn Sie es genehmigen –

Antwort

0

Vor allem im Beispiel sie die Liste als ‚ToppingOptions‘ Wert zu deklarieren, verwenden List<ToppingOptions> statt List nur, wenn es nicht noch nicht funktioniert, versuchen Sie den ersten Wert der Aufzählungen und Satz zu ändern es = 1, und die anderen halten wie die

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 
}; 

wie Sie in dem Kommentar sagten die guidlines sind beschreiben: "Wenn ein Feld auf einer eNUM basiert, und es ist kein Nullwert enthält, dann ist die Der Wert 0 in der Enumeration wird als Null betrachtet und Sie sollten mit der Aufzählung bei 1 beginnen. "

Verwandte Themen