C# – Deconstruction

C#
C#

Deconstruction הוא תהליך של פירוק ערך של משתנה למספר משתנים חדשים, משהו שיכול להיות מאוד יעיל בטיפול ברשימות מסוג Tuple או מילונים למשל.
במאמר זה נעבור על מספר דוגמאות אשר מדגימות תהליך פירוק למבני נתונים ב-C#

Tuple Deconstruction

בקטע הקוד הבא ניצור רשימת Tuple ונפרק את אבריה למשתנים חדשים:

var user = ("Jimmie", "Handrill", "Handrill99@technow.co.il");

var (firstName, lastName, email) = user;

Console.WriteLine(firstName);
Console.WriteLine(lastName);
Console.WriteLine(email);

שימו לב לשורה 3 – שם ביצענו את תהליך הפירוק.
בתוך הסוגריים נתנו שמות למשתנים החדשים, כאשר הערך שהם מכילים יהיה הערכים של רשימת ה-Tuple שיצרנו לפני זה.
כעת נוכל להדפיס את הערכים של משתנים אלו בנפרד מבלי להתייחס לרשימת ה-Tuple.

Tuple Deconstruction
Tuple Deconstruction

דוגמאות נוספות ל-Tuple Deconstruction במאמרים – איך לבצע איטרציה על מאפייני מחלקה, C# – JSON

פירוק מילונים

כמו שביצענו Tuple Deconstruction כמובן שנוכל לבצע תהליך פירוק גם למבני נתונים אחרים.
נניח והיה לנו צורך לפרק צמדי Key-Value ממילון למשתנים שונים לצורך הדפסתם, יכולנו לפעול כך:

var colors = new Dictionary<int, string>
{
    {1, "Red"},
    {2, "Blue"},
    {3, "Green"},
    {4, "Yellow"}
};

foreach ((int key, string value) in colors)
{
    Console.WriteLine($"{key}: {value}");
}

לאחר מכן השתמשנו בלולאה על מנת להדפיס משתנים אלו, וכשנפעיל את התוכנית נקבל את הפלט הבא:

Dictionary Deconstruction
Dictionary Deconstruction

שימו לב כי במקרה זה את תהליך הפירוק ביצענו בחתימת הלולאה, בין הסוגריים נתנו למשתנים את השמות – key ו-value.

פירוק מחלקה

במקרה שנרצה, נוכל גם גם לבצע תהליך פירוק למאפייני מחלקה.
לשם ההדגמה ניצור את מחלקת User ולה מאפייני שם פרטי ושם משפחה:

class User
{
    string FirstName { get; set; }
    string LastName { get; set; }

    public User(string fname, string lname)
    {
        FirstName = fname;
        LastName = lname;
    }

    public void Deconstruct(out string fname, out string lname)
    {
        fname = FirstName;
        lname = LastName;
    }    
}

בתוך המחלקה יצרנו את המתודה – Deconstruct שמקבלת שני מאפייני Out – אחד עבור השם הפרטי, השני עבור שם המשפחה.
הערכים שיכילו פרמטרים אלו הם מאפייני המחלקה שיצרנו – FirstName ו-LastName.
את שם ושם המשפחה של המשתמש נזין בבנאי, כך שאת התוכנית נוכל לבנות כך:

User user = new("Bob", "Mana");

var (firstName, lastName) = user;
Console.WriteLine($"{firstName} {lastName}");

וכשנריץ את התוכנית, נוכל לקבל את התוצאה הבאה:

Class Deconstruction
Class Deconstruction

לקריאה מורחבת באתר של מייקרוסופט יש ללחוץ כאן.

רוצים לשתף את המדריך?

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

גולשים יקרים, רוב התכנים המוצגים באתר נכתבים בהתנדבות מלאה מתוך כוונה להנגיש מידע עבורכם. אם נתקלתם במדריך חינמי שפתר לכם תקלה או לימד אתכם משהו חדש שלא ידעתם, וברצונכם לתגמל את כותב המדריך או סתם להזמין אותו לכוס קפה, הינכם יותר ממוזמנים לתרום.

כתיבת תגובה

הזמינו אותי לכוס קפה
buy me coffee

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

גולשים יקרים, רוב התכנים המוצגים באתר נכתבים בהתנדבות מלאה מתוך כוונה להנגיש מידע עבורכם. אם נתקלתם במדריך חינמי שפתר לכם תקלה או לימד אתכם משהו חדש שלא ידעתם, וברצונכם לתגמל את כותב המדריך או סתם להזמין אותו לכוס קפה, הינכם יותר ממוזמנים לתרום.