ساختارهای سی شارپ مانند یک جایگزین سبک، اما قدرتمند برای کلاس ها هستند. نحوه استفاده از این نوع داده مفید را بیاموزید.
در سی شارپ، دو دسته اصلی نوع عبارتند از انواع ارزش (مانند ساختارها)، و انواع مرجع (مانند کلاس). از آنجا که یک ساختار (یا ساختار) یک نوع ارزش است، داده محور است.
یک ساختار میتواند ویژگیها و روشهای مرتبط را ذخیره کند که ترجیحاً بر رفتار تمرکز ندارند.
چگونه یک ساختار را اعلام کنیم
هر اعلان ساختار باید دارای کلمه کلیدی struct باشد. قبل از کلمه کلیدی struct با یک اصلاح کننده دسترسی قرار دهید و بعد از آن یک نام و یک جفت بریس مجعد اضافه کنید. در اینجا نحوه اعلان ساختاری به نام Game آورده شده است:
public struct Game {}
نحوه پر کردن یک سازه
یک ساختار داده ها را در قالب های فرفری خود به شکل ویژگی ها، سازنده ها، روش ها، رویدادها و غیره ذخیره می کند.
public struct Game
{
public string name;
public string description;
public int levels;
public Game (string name, string description, int levels) {
this.name = name;
this.description = description;
this.levels = levels;
}
public override string ToString() => $"Name: {name}, Description: {description}, Levels: {levels}";
}
ساختار Game اکنون دارای سه ویژگی است، یک سازنده و یک متد. اینها سه جزء اصلی یک ساختار C# هستند که سه جزء اصلی کلاس C# نیز هستند.
چگونه یک متغیر ساختار ایجاد کنیم
هر نمونه از ساختار C# به عنوان یک متغیر شناخته می شود. دو راه برای ایجاد یک متغیر از یک ساختار وجود دارد. می توانید از سازنده استفاده کنید:
Game game1 = new Game("Pokémon GO", "Lorem ipsum dolor sit amet.", 50);
یا می توانید با استفاده از عملگر نقطه (.) مقادیری را به ویژگی های جداگانه یک ساختار اختصاص دهید:
Game game1;
game1.name = "Pokémon GO";
game1.description = "Lorem ipsum dolor sit amet.";
game1.levels = 50;
هر دو رویکرد به یک نتیجه می رسند. کد بالا از سی شارپ برای توسعه یک شی بازی به نام Pokémon GO استفاده می کند که دارای توضیحات مختصر و 50 سطح است. بنابراین، اکنون می توانید از شی game1 استفاده کنید.
Console.WriteLine(game1.ToString());
این خروجی زیر را در کنسول چاپ می کند:
Name: Pokémon GO, Description: Lorem ipsum dolor sit amet., Levels: 50
تفاوت بین ساختار و کلاس
یک ساختار و یک کلاس ظاهری مشابه دارند، اما تفاوت های قابل توجه زیادی دارند. آنها از کلمات کلیدی مختلفی برای اعلان استفاده می کنند. و ساختارها نه ارجاعات تهی و نه ارثی را پشتیبانی نمی کنند.