Introduction
Deconstruction is a process of splitting a variable value into parts and storing them into new variables. This could be useful when a variable stores multiple values such as a tuple.
Let’s take a look at the code sample in Listing 1. In this code, method GetATuple returns a tuple with three values.
// This method returns a tuple with three values
(string name, string title, long year) GetATuple(long id)
{
string name = string.Empty;
string title = string.Empty;
long year = 0;
if (id == 1000)
{
// If id is 1000, assign specific values to the tuple elements
name = "Mahesh Chand";
title = "ADO.NET Programming";
year = 2003;
}
// Return a tuple literal with the assigned values
return (name, title, year);
}
Listing 1
The code snippet in Listing 2 calls the GetATuple method and displays the return values on the console.
(string authorName, string bookTitle, long pubYear)
= GetATuple(1000);
Console.WriteLine("Author: {0} Book: {1} Year: {2}", authorName, bookTitle, pubYear); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Listing 2
The code in Listing 2 can be deconstructed as the code in Listing 3, where three var types are used to store the return values.
(var authorName, var bookTitle, var pubYear) = GetATuple(1000);
Console.WriteLine("Author: {0} Book: {1} Year: {2}", authorName, bookTitle, pubYear);
Listing 3
The code in Listing 3 can also be replaced by the following syntax in Listing 4.
var (authorName, bookTitle, pubYear) = GetATuple(1000);
Console.WriteLine("Author: {0} Book: {1} Year: {2}", authorName, bookTitle, pubYear);
Listing 4
Summary
In this article, we learned the deconstruction process introduced in C# 7.0.
Next C# 7.0 Feature is Tuples In C# 7.0
References
References used to write this article.