Gå til indholdet

Brug af SharpLap

SharpLap er en online platform, der giver dig mulighed for at eksperimentere og dele C#-kode og se den faktiske IL-kode (Intermediate Language), der genereres af C#-kompilatoren. Platformen er en fantastisk måde at lære mere om, hvordan C#-koden oversættes til maskinkode, og hvordan forskellige C#-konstruktioner påvirker den genererede IL-kode.

SharpLab understøtter også andre .NET-sprog, såsom F#, VB.NET og Rust, og giver dig mulighed for at sammenligne koden fra forskellige sprog og versioner af .NET. Det giver også mulighed for at tilføje henvisninger til andre .NET-assemblyer og se, hvordan de påvirker den genererede IL-kode.

SharpLab er et open-source projekt og er tilgængelig på GitHub, hvilket giver mulighed for at bidrage til projektet og også mulighed for at køre platformen på dine egne servere.

Afvikling

SharpLab giver mulighed for at se resultatet af kode, og stiller samtidigt et par funktioner til rådighed som blandt andet muligheden for at se et stack og heap diagram. Prøv følgende i SharpLap:

namespace SharpLap
{
    internal class Program
    {
        static void Main(string[] args)
        {

            int i = 100;
            i++;
            Inspect.Stack(i);

            Person p1 = new Person() { Age = 11 };

            Person p2 = new Person() { Age = 9 };
            Inspect.MemoryGraph(i, p1, p2);

            p1 = p2;

            Inspect.MemoryGraph(i, p1, p2);

            Inspect.Heap(p1);

        }
    }

    class Person
    {
        private int age;

        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                age = value;
            }
        }
    }
}

Hvis du kopierer koden til det venstre vindue og vælger “Run” i Result-listen i højre vindue vil du bla. kunne se et stack/heap diagram:

Bemærk de tre Inspect-metoder:

  • Inspect.MemoryGraph
  • Inspect.Heap
  • Inspect.Stack