//
// SWITCH 语句是 DO CASE 语句的替代语句
// 最大的区别在于表达式(本例中为 sDeveloper)只被评估一次。
// 与 DO CASE 语句相比,它的性能优势在于
// CASE 的空语句是允许的。在这种情况下,标签共享代码(见下面的 CHRIS 和 NIKOS)
//
// 请注意,SWITCH 内不允许使用 EXIT 语句,但允许使用 RETURN、LOOP 和 THROW 语句。
using System.Collections.Generic
Function Start() as void
FOREACH VAR sDeveloper in GetDevelopers()
SWITCH sDeveloper:ToUpper()
CASE "FABRICE"
? sDeveloper, "France"
CASE "CHRIS"
CASE "NIKOS"
? sDeveloper, "Greece"
CASE "ROBERT"
? sDeveloper, "The Netherlands"
OTHERWISE
? sDeveloper, "Earth"
END SWITCH
NEXT
Console.ReadKey()
RETURN
FUNCTION GetDevelopers as List<String>
VAR aList := List<String>{}
aList:AddRange(<string>{ "Chris", "Fabrice", "Nikos", "Robert", "YourName" } )
RETURN aList