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
50
Azure

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

December 23, 2025
21
AI

Build and Host an Expense Tracking MCP Server with Azure Functions

November 2, 2025
713
Azure

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

October 17, 2025
209
Azure

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

July 20, 2025
136
AI

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

April 21, 2025
316
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

Revolutionizing IP Management in Azure with IPAM: Explore, Deploy, and Master!

Revolutionizing IP Management in Azure with IPAM: Explore, Deploy, and Master!

October 4, 2023
486
Animations with Lottie in Xamarin Forms

Animations with Lottie in Xamarin Forms

April 26, 2020
1.1k
Learn… and get rewarded

Learn… and get rewarded

September 28, 2020
585
How to SSH into AKS Nodes

How to SSH into AKS Nodes

May 11, 2021
7.8k
Sql tips and tricks

Sql tips

August 29, 2020
669
Exploring the Future: Microsoft Ignite Paris Highlights, Copilot Innovations, and Advanced Security Solutions

Exploring the Future: Microsoft Ignite Paris Highlights, Copilot Innovations, and Advanced Security Solutions

December 18, 2023
166
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