Achraf Ben Alaya
No Result
View All Result
  • Home
  • News
  • Blog
    • blazor
    • c#
    • Cloud
      • Azure
    • docker
    • sql
    • xamarin
    • Dapr
    • Tricks, Tips and Fixes
    • General Tips & Fix
  • AI
  • Cloud
  • Motivation
  • Courses
  • About
    • Resume
    • Privacy Policy
SUBSCRIBE
  • Home
  • News
  • Blog
    • blazor
    • c#
    • Cloud
      • Azure
    • docker
    • sql
    • xamarin
    • Dapr
    • Tricks, Tips and Fixes
    • General Tips & Fix
  • AI
  • Cloud
  • Motivation
  • Courses
  • About
    • Resume
    • Privacy Policy
No Result
View All Result
Achraf Ben Alaya
No Result
View All Result
ADVERTISEMENT
Home Blog

Boxing and Unboxing in C#

achraf by achraf
August 29, 2020
in Blog, c#
2 min read
0
Boxing and Unboxing in C#
0
SHARES
1.1k
VIEWS
Share on FacebookShare on Twitter

As part of graduation projects , each year we should have internships in summer , so we had to prepare ourselves for interviews for technical and non technical question . I remember in one of the interviews , the last question was ,’can you explain to me what is boxing and unboxing ? ‘ and I was like :

Well , I stood like that for 5 minutes and ended up saying that I don’t know the answer , then the interviewer get up from his desk and explained it to me by writing on a blackboard . When he was explaining I was saying in my mind : ‘Dude ,I have been doing that all my life , I didn’t know it’s called boxing and unboxing ! ‘ .

Well , that was an interview that didn’t go well , but at least I learned something from it which encouraged me to write about it now .

What is Boxing And Unboxing ? Boxing is the process of converting a value type to the type object or to any interface type implemented by this value type.

So when we say boxing,we say it’s the process of taking a value type ,putting it inside a new object on the heap and storing a reference to it on the stack . Unboxing is the exact opposite.

The difference between a value type and a reference type is that the value type stores its value directly,a reference type stores a reference that points to an object on the heap that contains the value. so : Unboxing extracts the value type from the object. Boxing is implicit and unboxing is explicit.

Let’s start by a simple boxing example :

int i = 123456;

// The following line boxes i inside object o. object o = i; The object o now, can be unboxed and assigned to integer variable i

o = 123; i = (int)o;

// unboxing o Let’s see one more example , so we have the following code :

class TestUnboxing

class TestUnboxing 
{ static void Main() { int i = 123; object o = i; // implicit boxing

    try
    {
        int j = (short)o;  // attempt to unbox

        System.Console.WriteLine("Unboxing OK.");
    }
    catch (System.InvalidCastException e)
    {
        System.Console.WriteLine("{0} Error: Incorrect unboxing.", e.Message);
    }
}
}

 

So the output of this code if you try to execute it is , ” Specified cast is not valid. Error: Incorrect unboxing. ” and why is that ?

As you can see , we have defined i as int , but when we tried to unbox it we used short which cause the exception here , so what we need to do is :

int j = (int) o;
A picture that can explain all that :

Performance In relation to simple assignments, boxing and unboxing are computationally expensive processes. When a value type is boxed, a new object must be allocated and constructed. To a lesser degree, the cast required for unboxing is also expensive computationally. For more information, see Performance in Microsoft official website .

Happy boxing && unboxing day 🙂

 

ShareTweet
Previous Post

Achraf First Post

Next Post

Sql tips and tricks

Related Posts

Blog

 2025 – Certifications, Community, and 50K Views

December 28, 2025
62
Azure

From Manual Terraform to AI-Assisted DevOps: Building an Azure Container Platform (Part 1)

December 23, 2025
113
AI

Build and Host an Expense Tracking MCP Server with Azure Functions

November 2, 2025
737
Azure

Log Analytics Workspace Chaos: How We Tamed 100+ Orphaned Workspaces

October 17, 2025
241
Azure

Honored to be recognized as a Microsoft Azure MVP for 2025-2026

July 20, 2025
141
AI

Model Context Protocol (MCP): The Future of AI Integration

April 21, 2025
329
Next Post
Sql tips and tricks

Sql tips and tricks

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Terraform

Certifications

Microsoft certified trainer (MCT)

Recommended

Reflecting on My Journey as a Microsoft MVP in 2024

Reflecting on My Journey as a Microsoft MVP in 2024

March 24, 2024
394
Migrate and modernize your applications on Azure

Migrate and modernize your applications on Azure – Part 2.0 (Proxy Function)

April 3, 2021
1.2k
My 2020 Review

My 2020 Review

December 31, 2020
291
Where is my Money ! The Proper way To Shutdown Azure VM

Where is my Money ! The Proper way To Shutdown Azure VM

November 2, 2020
915
Network Security & Route Tables – Checking NSGs, route tables, and service endpoints for a targeted VNET or Subnet

Network Security & Route Tables – Checking NSGs, route tables, and service endpoints for a targeted VNET or Subnet

February 3, 2025
260
Animations with Lottie in Xamarin Forms

Animations with Lottie in Xamarin Forms

April 26, 2020
1.1k
Facebook Twitter LinkedIn Youtube

 2025 – Certifications, Community, and 50K Views

December 28, 2025

From Manual Terraform to AI-Assisted DevOps: Building an Azure Container Platform (Part 1)

December 23, 2025

Build and Host an Expense Tracking MCP Server with Azure Functions

November 2, 2025

Categories

  • AI (3)
  • Apps (1)
  • Azure (67)
  • blazor (2)
  • Blog (94)
  • c# (7)
  • Cloud (69)
  • Courses (4)
  • Dapr (4)
  • docker (4)
  • Games (1)
  • General Tips & Fix (1)
  • Home (1)
  • Kubernetes Service (AKS) (1)
  • motivation (2)
  • Motivation (3)
  • News (9)
  • Resume (1)
  • sql (4)
  • Terrafrom (2)
  • Tricks, Tips and Fixes (4)
  • xamarin (5)
No Result
View All Result
  • Home
  • News
  • Blog
    • blazor
    • c#
    • Cloud
      • Azure
    • docker
    • sql
    • xamarin
    • Dapr
    • Tricks, Tips and Fixes
    • General Tips & Fix
  • AI
  • Cloud
  • Motivation
  • Courses
  • About
    • Resume
    • Privacy Policy