Basic of C#: Call Stack, Call Site and Stack unwinding

Objective

In this article, I will explain three basic terms of C#

1. Call Stack

2. Call Site

3. Stack Unwinding

Let us say, you got the below code

Program.cs


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication7

{

class Program

{

static void Main(string[] args)

{

Method1();

Console.Read();

}

static void Method1()

{

Method2();

Console.WriteLine("Method1");

}

static void Method2()

{

Method3();

Console.WriteLine("Method2");

}

static void Method3()

{

Method4();

Console.WriteLine("Method3");

}

static void Method4()

{

Method5();

Console.WriteLine("Method4");

}

static void Method5()

{

Console.WriteLine("Method5");

}

}

}

I have just created five dummy methods and calling them in nested manner. The methods, I have created are Method1 to Method5. If you run the above program , you will get output as below

clip_image002

If you examine the output, Methods are being called in reverse order.

Program is putting the methods in stack as below,

clip_image003

What is Call Stack?

Here, we are calling a method inside a method and so on and this is called CALL STACK.

clip_image004

Call Stack is the process of calling method inside a method.

Mathematically, we can say

clip_image006

What is Stack Unwinding?

Once the method call is completed that method is removed from the stack and this process is known as Stack Unwinding.

clip_image008

What is Call Site?

In above program, we are calling Method3 from Method2, so we can say Method2 is call site of Method3

clip_image010

4 responses to “Basic of C#: Call Stack, Call Site and Stack unwinding”

  1. Hey

    Nice article man. Simple and crisp.

    regards
    Lohith

  2. Great work, keep it up!

    For me, reviewing the call stack of recursive functions is a challenge. :S

  3. I am a little bit weak in computer language. is there any other way you can define these terms in simple english?

  4. Sharp and crisp explanation. Simply superb and wonderful. Thumbs up!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s