MethodImplOptions 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定用于定义如何实现方法的详细信息的常数。
此枚举支持其成员值的按位组合。
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
- 继承
- 属性
字段
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
样),因为自己的代码以外的代码可能会对公共类型和实例进行锁定。 这可能会导致死锁或其他同步问题。