如何知道我的代码是否内联

本文关键字:是否 代码 何知道 我的 | 更新日期: 2023-09-27 18:28:36

我想知道我的代码是否可以内联。我找到了一种方法,那就是:

Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);

但我不确定它应该如何告诉我。如果我在这个上使用它:

[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static ImageCodecInfo GetEncoderInfo(ImageFormat format)
{
    Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name);
    return ImageCodecInfo.GetImageEncoders().ToList().Find(delegate(ImageCodecInfo codec)
    {
        return codec.FormatID == format.Guid;
    });
}

如果控制台是内联的,那么它应该写什么?根据我的理解,它应该写下呼叫者的名字,例如:

Private void Caller()
 {
ImageCodecInfo GetEncoderInfo(bmpFormat)
 }

控制台将写入Caller。

这是正确的吗?如果是这样,那么我尝试过的任何东西都不会内联。

如何知道我的代码是否内联

GetCurrentMethod阻止内联(源http://prdlxvm0001.codify.net/pipermail/ozdotnet/2011-March/009085.html)

请记住,内联是在JIT期间完成的,而不是编译。

相关文章: