حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش کار با Tuple ها در سی شارپ

یکی از ویژگی های سی شارپ Tuple ها هستند. اما Tuple ها دقیقاً چه کمکی به ما در سی شارپ می کنند؟در اکثر مواقع زمانی که قصد داریم مدلی در سی شارپ ایجاد می کنیم (یا تعریف Class یا تعریف Struct). اما بعضی وقت ها ایجاد مدل های جدید کار زمانبری هست. اینجا Tuple ها به کمک ما می آیند.قبل از اینکه با نحوه کار Tuple ها آشنا بشیم یک مثال ساده می زنیم. فرض کنیم مدلی نیاز داریم که دو مقدار عددی و یک مقدار رشته تو خودش نگه داری کنه. قبلا به این صورت مدل مورد نیاز رو تعریف می کردیم:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای یادگیری و آموزش سی شارپ ( آموزش زبان برنامه نویسی سی شارپ ) رایگان به این لینک بروید

کلیه کدهای این مطلب در Visual Studio 2022 و با زبان سی شارپ نسخه 10 نوشته شده اند.

public class Model
{
    public Model(int value1, int value2, string value3)
    {
        this.Value1 = value1;
        this.Value2 = value2;
        this.Value3 = value3;
    }

    public int Value1 { get; set; }
    public int Value2 { get; set; }
    public string Value3 { get; set; }
}

و از کد به این صورت استفاده می کردیم:

var model = new Model(1, 2, "A");

با معرفی Tuple ها رسماً بخش اول، یعنی معرفی مدل حذف شده و میتونیم به راحتی به صورت زیر مدل مورد نظر رو ایجاد کنیم:

var model = new Tuple<int, int, string>(1, 2, "A");

Console.WriteLine(model.Item1);

اما تعریف Tuple ها به صورت خیلی ساده تر هم امکان پذیر هست. برای تعریف Tuple بالا می تونیم از کد زیر استفاده کنیم:

var model = (1, 2, "A");

Console.WriteLine(model.Item1);

کد بالا یک مدل با سه مقدار که دو مقدار اولی Int و مقدار آخری String می باشد برای ایجاد می کند. حالا فرض کنید بخواییم نوع مقدار دوم از نوع decimal باشد، بوسیله کد زیر می تونیم نوع مقادیر رو مشخص کنیم:

(int, decimal, string) model = (1, 2, "A");

Console.WriteLine(model.Item1 + "," + model.Item2 + ", " + model.Item3);

یکی از مشکلاتی که در کد بالا می بینیم نام گذاری خصوصیت ها هستند که به ترتیب Item1 و Item2 و Item3 می باشند. برای تغییر این نام می توانیم به صورت زیر کد را تغییر بدهیم:

(int Number1, decimal Number2, string Name) model = (1, 2, "A");

Console.WriteLine(model.Number1 + "," + model.Number2 + ", " + model.Name);

یکی از استفاده های Tuple ها در مقادیر بازگشتی متدها هستند. برای مثال متدی رو در نظر بگیرید که نام، نام خانوادگی و سن رو برمیگردونه، بوسیله Tuple ها متد مورد نظر رو به صورت زیر تعریف می کنیم:

var emp = GetEmployee();
Console.WriteLine(emp.Firstname);


static (string Firstname, string Lastname, int Age) GetEmployee()
{
    return ("Hossein", "Ahmadi", 37);
}

همانطور که در این مطلب مشاهده کردید استفاده از Tuple ها می تونه به صرفه جویی در زمان ما خیلی کمک کنه و سرعت کد نویسی رو بالا ببره. امیدوارم که این مطلب مورد توجه شما دوستان عزیز قرار گرفته باشه.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات