【发布时间】:2015-09-12 17:50:15
【问题描述】:
MethodImplOptions 的 MSDN 参考如下:
我想了解,首先,我应该在什么情况下使用MethodImpl(MethodImplOptions.Unmanaged),最重要的是,它的好处/优化是什么(如果有的话)?
我假设我应该在调用 WinAPI 函数或第三方 C/C++ 库中的函数时使用它,那么,这个代码示例对吗?:
<MethodImpl(MethodImplOptions.Unmanaged)>
Public Shared Sub MyMethod()
' Call to
SafeOrUnsafeNativeMethodsClass.RanodmWinAPIFunction()
End Sub
其次,我想了解我应该为在类中声明为共享的方法使用什么值,这些方法可以从代码的任何部分调用。
一个例子:
' Sealed class.
Public NotInheritable Class class1
' No instanceable class.
Private Sub New()
End Sub
Public Shared Function MyFunc(ByVal parameter1 As String) As Boolean
Return A Boolean Value
End Function
End Class
MethodImplOptions EnumerationI 应该在MethodImpl 属性中为该方法设置什么值?
这是一个用户测试,证明内联会导致性能不佳:
但是,我不确定是否应该指定内联,是否应该设置 NoOptimization,或者在共享方法的情况下使用什么值可以获得最佳性能。
【问题讨论】:
-
您在该问题中哪里看到“表现不佳”?