MethodImplOptions 枚举

定义

指定用于定义如何实现方法的详细信息的常数。

此枚举支持其成员值的按位组合。

public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions = 
Public Enum MethodImplOptions
继承
MethodImplOptions
属性

字段

AggressiveInlining 256

如可能应将该方法进行内联。

不必要地使用此属性可能会降低性能。 属性可能会导致遇到实现限制,从而导致生成代码的速度变慢。 始终测量性能,以确保应用此属性是有帮助的。

AggressiveOptimization 512

方法包含的代码应始终针对性能进行优化。

很少适合使用此属性。 应用此属性的方法会绕过 分层编译 的第一层,因此不会受益于依赖于分层编译的优化。 这些优化包括 动态 PGO 和基于初始化类的优化。 使用此属性也可能增加内存使用量。 始终测量性能,以确保应用此属性是有帮助的。

ForwardRef 16

已声明该方法,但在其他位置提供实现。

InternalCall 4096

该调用为内部调用,也就是说它调用了在公共语言运行时中实现的方法。

NoInlining 8

该方法不能为内联方法。 内联是一种优化方式,通过该方式将方法调用替换为方法体。

NoOptimization 64

调试可能的代码生成问题时,该方法不由实时 (JIT) 编译器或本机代码生成优化(请参阅 Ngen.exe)。

PreserveSig 128

完全按照声明导出方法签名。

SecurityMitigations 1024

此成员留待将来使用。 它是在 .NET Framework 4.8 中引入的。

Synchronized 32

该方法一次性只能在一个线程上执行。 静态方法在类型上锁定,而实例方法在实例上锁定。 只有一个线程可在任意实例函数中执行,且只有一个线程可在任意类的静态函数中执行。

Unmanaged 4

此方法在非托管的代码中实现。

注解

此枚举与 属性一 MethodImplAttribute 起使用。

可以使用按位 OR 运算符指定多个 MethodImplOptions 值。

注意

对于公共类型,不建议像使用 标志一样 Synchronized 对实例或类型进行锁定,因为除你自己的代码以外的代码可能会锁定公共类型和实例。 这可能会导致死锁或其他同步问题。

适用于