Yurttas/PL/OOL/CS/F/02/04/00/index page

Revision as of 07:20, 7 November 2013 by MassBot1 (talk | contribs) (Created page with "{| width="100%" cellpadding="4" | class="y01" | <span class="b10"> c# programming language fundamentals </span> | class="y01" | <div class="right"><span class="h06b"> <span...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
c# programming language fundamentals
2. c# language fundamentals

statement - labeled-statement


A labeled-statement permits a statement to be prefixed by a label.
Labeled statements are permitted in blocks, but are not permitted
as embedded statements.

labeled-statement:
identifier   :   statement

A labeled statement declares a label with the name given by the
identifier. The scope of a label is the whole block in which the
label is declared, including any nested blocks. It is a
compile-time error for two labels with the same name to have
overlapping scopes.

A label can be referenced from goto statements (Section 8.9.3)
within the scope of the label. This means that goto statements
can transfer control within blocks and out of blocks, but never
into blocks.

Labels have their own declaration space and do not interfere
with other identifiers. The example

int F(int x) {
   if (x >= 0) goto x;
   x = -x;
   x: return x;
}

is valid and uses the name x as both a parameter and a label.

Execution of a labeled statement corresponds exactly to execution
of the statement following the label.

In addition to the reachability provided by normal flow of
control, a labeled statement is reachable if the label is
referenced by a reachable goto statement. (Exception: If a goto
statement is inside a try that includes a finally block, and the
labeled statement is outside the try, and the end point of the
finally block is unreachable, then the labeled statement is not
reachable from that goto statement.)

c#, .net framework, and visual studio.net << | >> classes, objects


Dr. Salih Yurttas