Microsoft.CodeAnalysis.Operations 命名空间

OperationExtensions
OperationVisitor

表示 IOperation 仅访问传入其 Visit 方法的单个 IOperation 的访问者。

OperationVisitor<TArgument,TResult>

表示仅 IOperation 访问传入其 Visit 方法的单个 IOperation 以及参数 TArgument 所指定类型的附加参数,并生成参数 TResult 所指定类型的值。

OperationWalker

表示一个 , OperationVisitor 它以深度优先顺序将访问每个 IOperation 及其子 IOperation 节点的整个 IOperation 树降序。

OperationWalker<TArgument>

表示一个 , OperationVisitor<TArgument,TResult> 它以深度优先顺序将访问每个 IOperation 及其子 IOperation 节点的整个 IOperation 树降序。 返回 Null。

结构

CommonConversion

表示转换中与语言无关的公共元素。

接口

IAddressOfOperation

表示一个操作,该操作通过获取引用的地址来创建指针值。

当前用法:表达式 (1) C# 地址

IAnonymousFunctionOperation

表示匿名函数操作。

当前用法: (1) C# lambda 表达式。 (2) VB 匿名委托表达式。

IAnonymousObjectCreationOperation

表示匿名对象的创建。

当前用法: (1) C# “new { ... }” 表达式 (2) VB “New With { ... }” 表达式

IArgumentOperation

表示方法调用的参数。

当前用法:将 1) C# 参数 (调用表达式、对象创建表达式等 (2 个) VB 参数转换为调用表达式、对象创建表达式等。

IArrayCreationOperation

表示数组实例的创建。

当前用法: (1) C# 数组创建表达式。 (2) VB 数组创建表达式。

IArrayElementReferenceOperation

表示对数组元素的引用。

当前用法: (1) C# 数组元素引用表达式。 (2) VB 数组元素引用表达式。

IArrayInitializerOperation

表示数组实例的初始化。

当前用法: (1) C# 数组初始值设定项。 (2) VB 数组初始值设定项。

IAssignmentOperation

表示分配的基接口。

当前用法: (1) C# 简单、复合和析构赋值表达式。 (2) VB 简单和复合赋值表达式。

IAttributeOperation

表示属性的应用。

当前用法: (1) C# 属性应用程序。 (2) VB 属性应用程序。

IAwaitOperation

表示 await 操作。

当前用法: (1) C# await 表达式。 (2) VB await 表达式。

IBinaryOperation

表示具有两个操作数和一个二元运算符的运算,该运算符生成非 null 类型的结果。

当前用法: (1) C# 二元运算符表达式。 (2) VB 二元运算符表达式。

IBinaryPatternOperation

表示二进制 (“and”或“or”) 模式。

当前用法: (1) C# “and” 和 “or” 模式。

IBlockOperation

表示包含一系列操作和本地声明的块。

当前用法: (1) C# “{ ... }” 块语句。 (方法主体和其他块范围语句的 2) VB 隐式块语句。

IBranchOperation

表示分支操作。

当前用法: (1) C# goto、break 或 continue 语句。 (2) VB GoTo、Exit ***或 Continue *** 语句。

ICaseClauseOperation

表示 case 子句。

当前用法: (1) C# case 子句。 (2) VB Case 子句。

ICatchClauseOperation

表示 catch 子句。

当前用法: (1) C# catch 子句。 (2) VB Catch 子句。

ICoalesceAssignmentOperation

表示具有目标和条件计算值的合并赋值运算: (1) Target 计算 null。 如果为 null, Value 则计算并分配给目标。 如果 Target 为 null,则 (2 个) Value 有条件地计算,并将结果分配给 Target。 整个表达式的结果为Target ,它只计算一次。

当前用法: (1) C# null 合并赋值操作 Target ??= Value

ICoalesceOperation

表示具有两个操作数的合并运算: (1) Value,这是无条件计算的第一个操作数,如果非 null,则为运算的结果。 (2) WhenNull,这是按条件计算的第二个操作数,如果 Value 为 null,则为运算的结果。

当前用法: (1) C# null 合并表达式“Value ?? WhenNull”。 (2) VB 二进制条件表达式“If (Value, WhenNull) ”。

ICollectionElementInitializerOperation

用于表示集合元素初始值设定项的已过时接口。 它已根据需要替换为 IInvocationOperationIDynamicInvocationOperation

当前用法:无。 此 API 已过时,支持 IInvocationOperationIDynamicInvocationOperation

ICollectionExpressionOperation

表示集合表达式。

当前用法: (1) C# 集合表达式。

ICompoundAssignmentOperation

表示一个复合赋值,该赋值使用二进制运算的结果改变目标。

当前用法: (1) C# 复合赋值表达式。 (2) VB 复合赋值表达式。

IConditionalAccessInstanceOperation

表示 中 WhenNotNull有条件访问的操作的值。 对于形式的 someExpr?.Member条件访问操作,此操作用作正确操作 Member的 InstanceReceiver。 有关详细信息,请参阅 https://github.com/dotnet/roslyn/issues/21279#issuecomment-323153041

当前用法: (1) C# 条件访问实例表达式。 (2) VB 条件访问实例表达式。

IConditionalAccessOperation

表示有条件访问的操作。 请注意, IConditionalAccessInstanceOperation 用于引用 中的 WhenNotNullOperation

当前用法: (1) C# 条件访问表达式 (?或?。运算符) 。 (2) VB 条件访问表达式 (?或?。运算符) 。

IConditionalOperation

表示条件操作: (1 个 Condition 要测试) , (2 个) WhenTrue 操作在 为 true 时 Condition 执行, (3 个) WhenFalse 操作在 为 false 时 Condition 执行。

当前用法: (1) C# 三元表达式“a? b: c“ 和 if 语句。 (2) VB 三元表达式“if (a, b, c) ”和 If Else 语句。

IConstantPatternOperation

表示具有常量值的模式。

当前用法: (1) C# 常量模式。

IConstructorBodyOperation

表示构造函数方法主体操作。

当前用法: (构造函数声明的 1) C# 方法主体

IConversionOperation

表示类型转换。

当前用法: (1) C# 转换表达式。 (2) VB 转换表达式。

IDeclarationExpressionOperation

表示声明表达式操作。 与正则变量声明 IVariableDeclaratorOperationIVariableDeclarationOperation不同,此操作表示声明变量的“表达式”。

当前用法: (1) C# 声明表达式。 例如, () “var (x, y) ”是带有变量 x 和 y 的析构声明表达式。 (b) “ (var x, var y) ”是具有两个声明表达式的元组表达式。 (c) “M (out var x) ;”是具有 out“var x”声明表达式的调用表达式。

IDeclarationPatternOperation

表示声明符号的模式。

当前用法: (1) C# 声明模式。

IDeconstructionAssignmentOperation

表示具有析构的赋值。

当前用法: (1) C# 析构赋值表达式。

IDefaultCaseClauseOperation

表示默认事例子句。

当前用法: (1) C# 默认子句。 (2) VB Case Else 子句。

IDefaultValueOperation

表示默认值操作。

当前用法: (1) C# 默认值表达式。

IDelegateCreationOperation

表示委托创建。 每当创建新委托时,会创建此权限。

当前用法: (1) C# 委托创建表达式。 (2) VB 委托创建表达式。

IDiscardOperation

表示放弃操作。

当前用法:C# 放弃表达式

IDiscardPatternOperation

表示放弃模式。

当前用法:C# 放弃模式

IDynamicIndexerAccessOperation

表示动态绑定的索引器访问。

当前用法: (1) C# 动态索引器访问表达式。

IDynamicInvocationOperation

表示动态绑定的调用。

当前用法: (1) C# 动态调用表达式。 (2) C# 动态集合元素初始值设定项。 例如,在以下集合初始值设定项中: new C() { do1, do2, do3 } 其中 doX 对象的类型为 dynamic,我们将有 3 IDynamicInvocationOperation ,其中 do1、do2 和 do3 作为其参数。 (3) VB 后期绑定调用表达式。 (4) VB 动态集合元素初始值设定项。 与 C# 示例类似, New C() From {do1, do2, do3} 将生成 3 IDynamicInvocationOperation 个节点,分别使用 do1、do2 和 do3 作为其参数。

IDynamicMemberReferenceOperation

表示对动态绑定的类、结构或模块成员的引用。

当前用法: (1) C# 动态成员引用表达式。 (2) VB 后期绑定成员引用表达式。

IDynamicObjectCreationOperation

表示使用动态绑定构造函数创建的对象。

当前用法: (1) 具有动态参数的 C# “new” 表达式 () 。 (2) VB 后期绑定的“New”表达式。

IEmptyOperation

表示空操作或无操作操作。

当前用法: (1) C# 空语句。

IEndOperation

表示突然停止代码执行的操作。

当前用法: (1) VB 结束语句。

IEventAssignmentOperation

表示事件的绑定。

当前用法: (1) C# 事件分配表达式。 (2) VB 添加/删除处理程序语句。

IEventReferenceOperation

表示对事件的引用。

当前用法: (1) C# 事件引用表达式。 (2) VB 事件引用表达式。

IExpressionStatementOperation

表示一个操作,该操作删除生成的值和基础包装 Operation的类型。

当前用法: (1) C# 表达式语句。 (2) VB 表达式语句。

IFieldInitializerOperation

表示字段的初始化。

当前用法: (1) 具有相等值子句的 C# 字段初始值设定项。 (2) VB 字段 (具有相等值子句或 AsNew 子句的) 初始值设定项。 可以使用 VB 中的 AsNew 子句初始化多个字段。

IFieldReferenceOperation

表示对某字段的引用。

当前用法: (1) C# 字段引用表达式。 (2) VB 字段引用表达式。

IForEachLoopOperation

表示每个循环的 。

当前用法: (1) C# “foreach” 循环语句 (2) VB “For Each” 循环语句

IForLoopOperation

表示 for 循环。

当前用法: (1) C# for“循环语句

IForToLoopOperation

表示 for to 循环,其中包含循环控制变量以及控制变量的初始值、限制值和步长值。

当前用法: (1) VB 'for ...自。。。Step' 循环语句

IFunctionPointerInvocationOperation

表示函数指针的调用。

IImplicitIndexerReferenceOperation

表示对非数组类型的隐式 System.Index 或 System.Range 索引器的引用。

当前用法: (1) C# 隐式 System.Index 或 System.Range 索引器引用表达式。

IIncrementOrDecrementOperation

表示 IncrementDecrement 操作。 请注意,此操作与 不同, IUnaryOperation 因为它会改变 , Target而一元运算符表达式不会改变其操作数。

当前用法: (1) C# 递增表达式或递减表达式。

IInlineArrayAccessOperation

表示对内联数组类型的元素引用或切片操作。

当前用法: (1) C# 内联数组访问。

IInstanceReferenceOperation

表示对实例的隐式/显式引用。

当前用法: (1) C# 此或基表达式。 (2) VB Me、MyClass 或 MyBase 表达式。 (3) C# 对象或集合或“with”表达式初始值设定项。 (4) VB With 语句、对象或集合初始值设定项。

IInterpolatedStringAdditionOperation

表示要转换为内插字符串处理程序类型的多个内插字符串文本的添加。

IInterpolatedStringAppendOperation

表示对 AppendLiteral 或 AppendFormatted 的调用,作为内插字符串处理程序转换的一部分。

IInterpolatedStringContentOperation

表示内插字符串的组成部分。

当前用法: (1) C# 内插字符串内容。 (2) VB 内插字符串内容。

IInterpolatedStringHandlerArgumentPlaceholderOperation

表示方法调用、索引器访问或构造函数调用的参数,该调用将创建包含 IInterpolatedStringHandlerCreationOperation

IInterpolatedStringHandlerCreationOperation

表示转换为自定义内插字符串处理程序类型的内插字符串。

IInterpolatedStringOperation

表示内插字符串。

当前用法: (1) C# 内插字符串表达式。 (2) VB 内插字符串表达式。

IInterpolatedStringTextOperation

表示内插字符串操作的构成字符串文本部分。

当前用法: (1) C# 内插字符串文本。 (2) VB 内插字符串文本。

IInterpolationOperation

表示内插字符串操作的构成内插部分。

当前用法: (1) C# 内插部分。 (2) VB 内插部分。

IInvalidOperation

表示具有一个或多个子操作的无效操作。

当前用法: (1) C# 无效表达式或无效语句。 (2) VB 无效表达式或无效语句。

IInvocationOperation

表示方法的调用。

当前用法: (1) C# 方法调用表达式。 (2) C# 集合元素初始值设定项。 例如,在以下集合初始值设定项中, new C() { 1, 2, 3 }我们将有 3 IInvocationOperation 个节点,每个节点都将调用相应的 Add 方法,其中 1、2、3 作为参数。 (3) VB 方法调用表达式。 (4) VB 集合元素初始值设定项。 与 C# 示例类似, New C() From {1, 2, 3} 将有 3 IInvocationOperation 个节点,分别为 1、2 和 3 作为参数。

IIsPatternOperation

表示一个操作,该操作测试值是否与特定模式匹配。

当前用法: (1) C# 是模式表达式。 例如,“x is int i”。

IIsTypeOperation

表示一个操作,该操作测试值是否为特定类型。

当前用法: (1) C# “is” 运算符表达式。 (2) VB“TypeOf”和“TypeOf IsNot”表达式。

ILabeledOperation

表示具有标签的操作。

当前用法: (1) C# 标记语句。 (2) VB 标签语句。

IListPatternOperation

表示 C# 列表模式。

ILiteralOperation

表示文本文本数字、字符串等。

当前用法: (1) C# 文本表达式。 (2) VB 文本表达式。

ILocalFunctionOperation

表示方法中定义的本地函数。

当前用法: (1) C# 本地函数语句。

ILocalReferenceOperation

表示对声明的局部变量的引用。

当前用法: (1) C# 本地引用表达式。 (2) VB 本地引用表达式。

ILockOperation

表示 Body 在锁定 时执行的操作的 LockedValue

当前用法: (1) C# lock 语句。 (2) VB SyncLock 语句。

ILoopOperation

表示循环操作。

当前用法: (1) C# “while”、“for”、“for”、“foreach”和“do”循环语句 (2 个 VB“While”、“ForTo”、“ForEach”、“Do While”和“Do Until”循环语句) VB“While”、“ForTo”、“ForEach”、“Do While”和“Do Until”循环语句

IMemberInitializerOperation

表示使用嵌套对象或集合初始值设定项的对象初始值设定项中成员的初始化。

当前用法: (1) C# 嵌套成员初始值设定项表达式。 例如,给定对象创建具有初始值设定项“new Class () { X = x,y, 3 },Z = { X = z } }”的对象,Y 和 Z 的成员初始值设定项,即“Y = { x, y, 3 }”和“Z = { X = z }”是此操作表示的嵌套成员初始值设定项。

IMemberReferenceOperation

表示对类、结构或接口成员的引用。

当前用法: (1) C# 成员引用表达式。 (2) VB 成员引用表达式。

IMethodBodyBaseOperation

表示方法正文操作。

当前用法: (1) C# 方法正文

IMethodBodyOperation

表示方法正文操作。

当前用法: (非构造函数的 1) C# 方法主体

IMethodReferenceOperation

表示对方法的引用,而不是作为调用的目标。

当前用法: (1) C# 方法引用表达式。 (2) VB 方法引用表达式。

INameOfOperation

表示获取名称的 Argument 字符串值的操作。

当前用法:表达式 (1) C# 名称。 (2) VB NameOf 表达式。

INegatedPatternOperation

表示否定模式。

当前用法: (1) C# 反模式。

IObjectCreationOperation

表示对象实例的创建。

当前用法: (1) C# 新表达式。 (2) VB 新表达式。

IObjectOrCollectionInitializerOperation

表示创建对象或集合的初始化。

当前用法: (1) C# 对象或集合初始值设定项表达式。 (2) VB 对象或集合初始值设定项表达式。 例如,对象创建“新类 () { X = x }”中的对象初始值设定项“{ X = x }”,集合创建“new MyList () { x, y, 3 }”中的集合初始值设定项“{ x, y, 3 }”。

IOmittedArgumentOperation

表示在调用中省略的参数值。

当前用法:调用表达式中 (1) VB 省略参数。

IParameterInitializerOperation

表示在声明点初始化参数。

当前用法: (1) 具有相等值子句的 C# 参数初始值设定项。 (2) 具有相等值子句的 VB 参数初始值设定项。

IParameterReferenceOperation

表示对参数的引用。

当前用法: (1) C# 参数引用表达式。 (2) VB 参数引用表达式。

IParenthesizedOperation

表示括号化运算。

当前用法: (1) VB 括号表达式。

IPatternCaseClauseOperation

表示具有模式和可选保护操作的 case 子句。

当前用法: (1) C# 模式 case 子句。

IPatternOperation

表示模式匹配操作。

当前用法: (1) C# 模式。

IPropertyInitializerOperation

表示属性的初始化。

当前用法: (1) 具有相等值子句的 C# 属性初始值设定项。 (2) 具有相等值子句或 AsNew 子句的 VB 属性初始值设定项。 可以使用 VB 中的 AsNew 子句使用“WithEvents”声明初始化多个属性。

IPropertyReferenceOperation

表示对属性的引用。

当前用法: (1) C# 属性引用表达式。 (2) VB 属性引用表达式。

IPropertySubpatternOperation

表示属性子模式的元素,该元素标识要匹配的成员以及要与之匹配的模式。

IRaiseEventOperation

表示用于引发事件的操作。

当前用法: (1) VB 引发事件语句。

IRangeCaseClauseOperation

表示一个 case 子句,其中包含要比较的值范围。

当前用法: (1) VB 范围 case 子句,形式为“Case x To y”。

IRangeOperation

表示范围操作。

当前用法: (1) C# 范围表达式

IRecursivePatternOperation

表示 C# 递归模式。

IReDimClauseOperation

表示 为单个数组变量重新分配存储空间的 IReDimOperation 的单个子句。

当前用法: (1) VB ReDim 子句。

IReDimOperation

表示为数组变量重新分配存储空间的 ReDim 操作。

当前用法: (1) VB ReDim 语句。

IRelationalCaseClauseOperation

表示一个 case 子句,其中包含用于比较的自定义关系运算符。

当前用法: (1) VB 关系 case 子句,形式为“Case Is op x”。

IRelationalPatternOperation

表示使用关系运算符将输入与常量值进行比较的模式。

当前用法: (1) C# 关系模式。

IReturnOperation

表示来自 方法的返回值(具有可选返回值)。

当前用法: (1) C# 返回语句和 yield 语句。 (2) VB Return 语句。

ISimpleAssignmentOperation

表示简单的赋值操作。

当前用法: (1) C# 简单赋值表达式。 (2) VB 简单赋值表达式。

ISingleValueCaseClauseOperation

表示具有单个值以供比较的 case 子句。

当前用法: (1) C# case 子句的形式“case x” (2) 形式“Case x”的 VB case 子句。

ISizeOfOperation

表示用于计算给定类型大小的操作。

当前用法:表达式 (1) C# 大小。

ISlicePatternOperation

表示 C# 切片模式。

ISpreadOperation

表示集合表达式分布元素。

当前用法: (1) C# 分布元素。

IStopOperation

表示停止或暂停代码执行的操作。

当前用法: (1) VB Stop 语句。

ISwitchCaseOperation

表示一个 switch case 节,其中包含要匹配的一个或多个 case 子句,以及要在该节中执行的一个或多个操作。

当前用法: (1) C# 开关节,用于一个或多个 case 子句和要执行的语句集。 (2) VB case 块,其中包含一个或多个 case 子句的 case 语句以及要执行的语句集。

ISwitchExpressionArmOperation

表示 switch 表达式的一个分支。

ISwitchExpressionOperation

表示开关表达式。

当前用法: (1) C# 开关表达式。

ISwitchOperation

表示具有要打开的值和开关事例的开关操作。

当前用法: (1) C# switch 语句。 (2) VB Select Case 语句。

ISymbolInitializerOperation

表示字段、属性、参数或局部变量声明的初始值设定项。

当前用法: (1) C# 字段、属性、参数或局部变量初始值设定项。 (2) VB 字段 () 、属性、参数或局部变量初始值设定项。

IThrowOperation

表示引发异常的操作。

当前用法: (1) C# 引发表达式。 (2) C# throw 语句。 (2) VB Throw 语句。

ITranslatedQueryOperation

表示取消滚动/降低的查询操作。 例如,对于 C# 查询表达式“from x in set where x.Name != null select x.Name”, 操作树具有以下形状:ITranslatedQueryExpression IInvocationExpression (“select x.Name”调用,) IInvocationExpression (“where x.Name != null”) IInvocationExpression (“From”调用“from x in set”)

当前用法: (1) C# 查询表达式。 (2) VB 查询表达式。

ITryOperation

表示具有正文、catch 子句和 finally 处理程序的异常处理代码的 try 操作。

当前用法: (1) C# try 语句。 (2) VB Try 语句。

ITupleBinaryOperation

表示返回布尔类型的两个操作数的比较。

当前用法: (1) C# 元组二进制运算符表达式。

ITupleOperation

表示具有一个或多个元素的元组。

当前用法: (1) C# 元组表达式。 (2) VB 元组表达式。

ITypeOfOperation

表示为给定 TypeOperand的 获取Type的操作。

当前用法: (1) C# 类型表达式。 (2) VB GetType 表达式。

ITypeParameterObjectCreationOperation

表示类型参数对象的创建,即新 T () ,其中 T 是具有新约束的类型参数。

当前用法: (1) C# 类型参数对象创建表达式。 (2) VB 类型参数对象创建表达式。

ITypePatternOperation

表示将输入与给定类型进行比较的模式。

当前用法: (1) C# 类型模式。

IUnaryOperation

表示具有一个操作数和一元运算符的运算。

当前用法: (1) C# 一元运算表达式。 (2) VB 一元运算表达式。

IUsingDeclarationOperation

表示使用变量声明,范围跨越父 IBlockOperation

当前用法: (1) C# 使用声明 (1) C# 异步使用声明

IUsingOperation

表示 Body 在使用可释放 Resources的 时执行的操作的 。

当前用法: (1) C# using 语句。 (2) VB Using 语句。

IUtf8StringOperation

表示字符串的 UTF-8 编码字节表示形式。

当前用法: (1) C# UTF-8 字符串文本表达式。

IVariableDeclarationGroupOperation

表示变量声明语句。

IVariableDeclarationOperation

表示声明多个单个变量的声明符。

IVariableDeclaratorOperation

表示单个变量声明符和初始值设定项。

IVariableInitializerOperation

表示局部变量的初始化。

当前用法: (1) 具有相等值子句的 C# 局部变量初始值设定项。 (2) 具有相等值子句或 AsNew 子句的 VB 局部变量初始值设定项。

IWhileLoopOperation

表示 while 或 do while 循环。

当前用法: (1) C#“while”和“do while”循环语句。 (2) VB“While”、“Do While”和“Do Until”循环语句。

IWithOperation

表示对象实例的克隆。

当前用法:使用表达式 (1) C#。

枚举

ArgumentKind

参数类型。

BinaryOperatorKind

二元运算符的类型。

BranchKind

的分支类型 IBranchOperation

CaseKind

事例类型。

InstanceReferenceKind

IInstanceReferenceOperation引用类型。

InterpolatedStringArgumentPlaceholderKind

IInterpolatedStringHandlerArgumentPlaceholderOperation占位符类型。

LoopKind

循环操作的类型。

UnaryOperatorKind

一元运算符的类型