Поделиться через


CodeLabeledStatement Класс

Определение

Представляет помеченную инструкцию или автономную метку.

public ref class CodeLabeledStatement : System::CodeDom::CodeStatement
public class CodeLabeledStatement : System.CodeDom.CodeStatement
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CodeLabeledStatement : System.CodeDom.CodeStatement
type CodeLabeledStatement = class
    inherit CodeStatement
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type CodeLabeledStatement = class
    inherit CodeStatement
Public Class CodeLabeledStatement
Inherits CodeStatement
Наследование
CodeLabeledStatement
Атрибуты

Примеры

В следующем примере кода показано использование потока программы и CodeLabeledStatement перенаправленияCodeGotoStatement.

// Declares a type to contain the example code.
CodeTypeDeclaration type1 = new CodeTypeDeclaration("Type1");
// Declares an entry point method.
CodeEntryPointMethod entry1 = new CodeEntryPointMethod();
type1.Members.Add( entry1 );
// Adds a goto statement to continue program flow at the "JumpToLabel" label.
CodeGotoStatement goto1 = new CodeGotoStatement("JumpToLabel");
entry1.Statements.Add( goto1 );
// Invokes Console.WriteLine to print "Test Output", which is skipped by the goto statement.
CodeMethodInvokeExpression method1 = new CodeMethodInvokeExpression(
    new CodeTypeReferenceExpression("System.Console"), "WriteLine", new CodePrimitiveExpression("Test Output."));
entry1.Statements.Add( method1 );
// Declares a label named "JumpToLabel" associated with a method to output a test string using Console.WriteLine.
CodeMethodInvokeExpression method2 = new CodeMethodInvokeExpression(
    new CodeTypeReferenceExpression("System.Console"), "WriteLine", new CodePrimitiveExpression("Output from labeled statement."));
CodeLabeledStatement label1 = new CodeLabeledStatement("JumpToLabel", new 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.");
//        }
//    }
' Declares a type to contain the example code.
Dim type1 As New CodeTypeDeclaration("Type1")
' Declares an entry point method.
Dim entry1 As New CodeEntryPointMethod()
type1.Members.Add(entry1)
' Adds a goto statement to continue program flow at the "JumpToLabel" label.
Dim goto1 As New CodeGotoStatement("JumpToLabel")
entry1.Statements.Add(goto1)
' Invokes Console.WriteLine to print "Test Output", which is skipped by the goto statement.
Dim method1 As New CodeMethodInvokeExpression(New CodeTypeReferenceExpression("System.Console"), "WriteLine", New CodePrimitiveExpression("Test Output."))
entry1.Statements.Add(method1)
' Declares a label named "JumpToLabel" associated with a method to output a test string using Console.WriteLine.
Dim method2 As New CodeMethodInvokeExpression(New CodeTypeReferenceExpression("System.Console"), "WriteLine", New CodePrimitiveExpression("Output from labeled statement."))
Dim label1 As New CodeLabeledStatement("JumpToLabel", New CodeExpressionStatement(method2))
entry1.Statements.Add(label1)

' A Visual Basic code generator produces the following source code for the preceeding example code:

'   Public Class Type1
'
'       Public Shared Sub Main()
'           GoTo JumpToLabel
'           System.Console.WriteLine("Test Output")
'           JumpToLabel:
'           System.Console.WriteLine("Output from labeled statement.")
'       End Sub
'   End Class

Комментарии

CodeLabeledStatement представляет метку и при необходимости связанную инструкцию. Метка может использоваться для указания целевого CodeGotoStatementобъекта.

Свойство Statement необязательное. Чтобы создать только метку, оставьте Statement свойство неинициализированным.

Замечание

Не все языки поддерживают goto инструкции и метки, поэтому следует проверить, поддерживает goto ли генератор кода операторы и метки, вызывая Supports метод с флагом GotoStatements .

Конструкторы

Имя Описание
CodeLabeledStatement()

Инициализирует новый экземпляр класса CodeLabeledStatement.

CodeLabeledStatement(String, CodeStatement)

Инициализирует новый экземпляр класса с помощью указанного CodeLabeledStatement имени и инструкции метки.

CodeLabeledStatement(String)

Инициализирует новый экземпляр класса с помощью указанного CodeLabeledStatement имени метки.

Свойства

Имя Описание
EndDirectives

CodeDirectiveCollection Возвращает объект, содержащий конечные директивы.

(Унаследовано от CodeStatement)
Label

Возвращает или задает имя метки.

LinePragma

Возвращает или задает строку, в которой происходит инструкция кода.

(Унаследовано от CodeStatement)
StartDirectives

CodeDirectiveCollection Возвращает объект, содержащий директивы start.

(Унаследовано от CodeStatement)
Statement

Возвращает или задает необязательную связанную инструкцию.

UserData

Возвращает определяемые пользователем данные для текущего объекта.

(Унаследовано от CodeObject)

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел