CodeLabeledStatement Class
Represents a labeled statement or a stand-alone label.
Assembly: System (in System.dll)
System.CodeDom::CodeObject
System.CodeDom::CodeStatement
System.CodeDom::CodeLabeledStatement
| Name | Description | |
|---|---|---|
![]() | CodeLabeledStatement() | Initializes a new instance of the CodeLabeledStatement class. |
![]() | CodeLabeledStatement(String^) | Initializes a new instance of the CodeLabeledStatement class using the specified label name. |
![]() | CodeLabeledStatement(String^, CodeStatement^) | Initializes a new instance of the CodeLabeledStatement class using the specified label name and statement. |
| Name | Description | |
|---|---|---|
![]() | EndDirectives | Gets a CodeDirectiveCollection object that contains end directives.(Inherited from CodeStatement.) |
![]() | Label | Gets or sets the name of the label. |
![]() | LinePragma | Gets or sets the line on which the code statement occurs. (Inherited from CodeStatement.) |
![]() | StartDirectives | Gets a CodeDirectiveCollection object that contains start directives.(Inherited from CodeStatement.) |
![]() | Statement | Gets or sets the optional associated statement. |
![]() | UserData | Gets the user-definable data for the current object.(Inherited from CodeObject.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
CodeLabeledStatement represents a label and optionally, an associated statement. A label can be used to indicate the target of a CodeGotoStatement.
The Statement property is optional. To create only a label, leave the Statement property uninitialized.
Note |
|---|
Not all languages support goto statements and labels, so you should test wheter a code generator supports goto statements and labels by calling the Supports method with the GotoStatements flag. |
The following example code demonstrates use of a CodeGotoStatement and a CodeLabeledStatement to redirect program flow.
// Declares a type to contain the example code. CodeTypeDeclaration^ type1 = gcnew CodeTypeDeclaration( "Type1" ); // Declares an entry point method. CodeEntryPointMethod^ entry1 = gcnew CodeEntryPointMethod; type1->Members->Add( entry1 ); // Adds a goto statement to continue program flow at the "JumpToLabel" label. CodeGotoStatement^ goto1 = gcnew CodeGotoStatement( "JumpToLabel" ); entry1->Statements->Add( goto1 ); // Invokes Console.WriteLine to print "Test Output", which is skipped by the goto statement. array<CodeExpression^>^temp = {gcnew CodePrimitiveExpression( "Test Output." )}; CodeMethodInvokeExpression^ method1 = gcnew CodeMethodInvokeExpression( gcnew CodeTypeReferenceExpression( "System.Console" ),"WriteLine",temp ); entry1->Statements->Add( method1 ); // Declares a label named "JumpToLabel" associated with a method to output a test string using Console.WriteLine. array<CodeExpression^>^temp2 = {gcnew CodePrimitiveExpression( "Output from labeled statement." )}; CodeMethodInvokeExpression^ method2 = gcnew CodeMethodInvokeExpression( gcnew CodeTypeReferenceExpression( "System.Console" ),"WriteLine",temp2 ); CodeLabeledStatement^ label1 = gcnew CodeLabeledStatement( "JumpToLabel",gcnew CodeExpressionStatement( method2 ) ); entry1->Statements->Add( label1 ); // A C# code generator produces the following source code for the preceeding example code: // public class Type1 // { // // public static void Main() // { // goto JumpToLabel; // System.Console.WriteLine("Test Output"); // JumpToLabel: // System.Console.WriteLine("Output from labeled statement."); // } // }
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.



