Comparación de descompilación de c # (antigua)

Prólogo

Los viejos son la migración de mis blogs anteriores.

Escribimos código a veces encontramos algunos problemas, o queremos optimizar nuestro código, queremos ver la operación después de la compilación, luego la descompilación es imprescindible.

Texto

Aquí uso reflector e ILSpy, ¿por qué usar estos dos?

Sabemos que el primer tipo de reflector está cargado, pero a veces aún necesitamos usarlo como último recurso.

¿Por qué lo uso cuando es necesario? Porque a veces ILspy no se puede descompilar.

Contraste

Debido a las diferentes herramientas de descompilación, hay algunas diferencias en las cosas compiladas.

El siguiente es el caso de la misma descompilación de código.

reflector

private static void Main(string[] args)
{
    CacheItemPolicy policy = new CacheItemPolicy {
        RemovedCallback = arguments => Console.WriteLine($"缓存被移除的原因:{arguments.RemovedReason}"),
        SlidingExpiration = TimeSpan.FromSeconds(5.0),
        Priority = CacheItemPriority.NotRemovable
    };
    MemoryCache.Default.Add("mykey", "myvalue", policy, null);
    Console.WriteLine(MemoryCache.Default.Get("mykey", null));
    Thread.Sleep(0x1770);
    Console.WriteLine(MemoryCache.Default.Get("mykey", null));
    Console.ReadKey();
}

ILSpy

private static void Main(string[] args)
{
    CacheItemPolicy policy = new CacheItemPolicy {
        RemovedCallback = arguments => Console.WriteLine($"缓存被移除的原因:{arguments.RemovedReason}"),
        SlidingExpiration = TimeSpan.FromSeconds(5.0),
        Priority = CacheItemPriority.NotRemovable
    };
    MemoryCache.Default.Add("mykey", "myvalue", policy, null);
    Console.WriteLine(MemoryCache.Default.Get("mykey", null));
    Thread.Sleep(0x1770);
    Console.WriteLine(MemoryCache.Default.Get("mykey", null));
    Console.ReadKey();
}

Aunque existen diferencias sutiles, todavía es doloroso usar el cerebro humano para ver una variedad de descompilación, por lo tanto, elija una o dos herramientas de descompilación, no cambie con frecuencia. Es mejor estar familiarizado con el receptor. Siempre hay una razón para cobrar. Si tiene dinero, puede comprar una copia para recibir asistencia.
Por cierto, me gustaría recordarle que ILSpy es gratis, vaya directamente a github para descargar, no participe en wild, la versión puede ser inferior.

Supongo que te gusta

Origin www.cnblogs.com/aoximin/p/12728570.html
Recomendado
Clasificación