Selecting cases in C# and VFP
C#
Switch, Case, Default
|
VFP
Do Case, Case, Otherwise
|
There are two big differences between the case selection structures in the two languages
and they are a common source of bugs and difficulties with conversions:
-
C sharp implements a Java-style 'fall through' from one case to the next whereas
FoxPro implements the Pascal-style where only the statements associated with the first
true test are executed.
-
C sharp applies the test against the same variable in all the cases whereas FoxPro
can examine a different variable in each case.
C# Syntax Notes
The switch statement in C# is followed by an expression and
then by a series of case statements, one for each of the
values of the expression that are to be processed.
You must remember to include the break at the end of the
block of code for each case to transfer execution to the end of the switch block.
switch(i);
{
Case 1:
Console.WriteLine("one");
break;
Case 2:
Console.WriteLine("two");
break;
default:
Console.WriteLine("many");
break;
}
Note that C# does not allow the VB style of stating a range of values -
case1to4. Instead you have
to quote each case explicitly. The "fall through" mode of execution means that you can
give a series of empty cases followed by the code which is to apply to all of them:
Case 1:
Case 2:
Case 3:
Case 4:
Console.WriteLine("one to four");
One final point to note about the C# switch syntax is that each case is followed by a
colon, not by the usual semicolon. This is because each is a label and C# actually
supports the goto statement.It is possible, but not
advisable, to jump directly from any one case to another.
VFP Syntax Notes
Each case in a FoxPro structure has its own independent logical test:
Do Case
Case Price > 1000
? "Delivery is free over £1,000."
Case Country = "UK"
? "Delivery is free within UK"
Otherwise
? "Charge for delivery."
EndCase
The conditions for each case in a VFP structure can be anything that
returns a boolean, even if this requires a call to an external function or a
request for input from the user. This flexibility in the
Do Case structure makes up for the lack of
else if chains in FoxPro.
If
|
Language index
|
Loops
|