SemanticEdit 结构

定义

描述两次编译之间的符号编辑。 例如,添加方法、更新方法、删除类型等。

public value class SemanticEdit : IEquatable<Microsoft::CodeAnalysis::Emit::SemanticEdit>
public struct SemanticEdit : IEquatable<Microsoft.CodeAnalysis.Emit.SemanticEdit>
public readonly struct SemanticEdit : IEquatable<Microsoft.CodeAnalysis.Emit.SemanticEdit>
type SemanticEdit = struct
Public Structure SemanticEdit
Implements IEquatable(Of SemanticEdit)
继承
SemanticEdit
实现

构造函数

SemanticEdit(SemanticEditKind, ISymbol, ISymbol, Func<SyntaxNode,SyntaxNode>, Boolean, MethodInstrumentation)
已过时.

初始化 SemanticEdit 的实例。

SemanticEdit(SemanticEditKind, ISymbol, ISymbol, Func<SyntaxNode,SyntaxNode>, Boolean)
已过时.

初始化 SemanticEdit 的实例。

SemanticEdit(SemanticEditKind, ISymbol, ISymbol, Func<SyntaxNode,SyntaxNode>, Func<SyntaxNode,Nullable<RuntimeRudeEdit>>, MethodInstrumentation)

初始化 SemanticEdit 的实例。

属性

Instrumentation

要应用于方法的检测更新。 如果 不为空, OldSymbol 则 和 NewSymbol 必须为非 null IMethodSymbols,并且 Kind 必须为 Update

Kind

编辑的类型。

NewSymbol

来自后续编译的符号;如果编辑表示删除,则为以后编译中的包含类型的符号。

OldSymbol

早期编译中的符号;如果编辑表示加法,则为 null。

PreserveLocalVariables

如果 不为 null,则 SyntaxMap 为 True。

RuntimeRudeEdit

将以后编译中的语法节点关联到应在运行时由为该节点生成的 IL 报告的错误(如果有)。

SyntaxMap

从以后编译中的语法节点到上一次编译中的语法节点的映射;如果 PreserveLocalVariables 为 false 且不需要映射,或者当前方法的源与上一方法的源相同,则为 null。

方法

Equals(Object)

描述两次编译之间的符号编辑。 例如,添加方法、更新方法、删除类型等。

Equals(SemanticEdit)

SemanticEdit如果它们相同 Kind 且对应的 OldSymbolNewSymbol 符号相同,则被视为相等。 对发出的元数据/IL 进行比较相等的编辑效果不一定相同。

GetHashCode()

描述两次编译之间的符号编辑。 例如,添加方法、更新方法、删除类型等。

运算符

Equality(SemanticEdit, SemanticEdit)

描述两次编译之间的符号编辑。 例如,添加方法、更新方法、删除类型等。

Inequality(SemanticEdit, SemanticEdit)

描述两次编译之间的符号编辑。 例如,添加方法、更新方法、删除类型等。

适用于