✨ ساخت آبجکت مثل یک حرفهای: قدرت Object Initializers در #C
یادتونه قدیما برای ساختن و مقداردهی یه آبجکت، باید چند خط کد پشت سر هم مینوشتیم؟ این روش هم طولانیه و هم ممکنه باعث بشه مقداردهی بعضی پراپرتیها رو فراموش کنیم.
سیشارپ یه راه حل خیلی شیک، مدرن و امن برای این کار داره: Object Initializers.
1️⃣ روش سنتی در برابر روش مدرن
فرض کنید این کلاس Bunny رو داریم:
public class Bunny
{
public string Name;
public bool LikesCarrots;
public bool LikesHumans;
public Bunny() {}
public Bunny(string n) => Name = n;
}
روش قدیمی و چند خطی: 👎
Bunny b1 = new Bunny();
b1.Name = "Bo";
b1.LikesCarrots = true;
b1.LikesHumans = false;
روش مدرن با Object Initializer: 👍
حالا با سینتکس {}، میتونیم تمام این کارها رو در یک دستور و به صورت خیلی خوانا انجام بدیم:
Bunny b2 = new Bunny
{
Name = "Bo",
LikesCarrots = true,
LikesHumans = false
};
این قابلیت حتی با سازندههایی که پارامتر دارن هم کار میکنه:
Bunny b3 = new Bunny("Bo")
{
LikesCarrots = true,
LikesHumans = false
};2️⃣ پشت صحنه چه خبره؟ (نکته حرفهای) ⚙️
شاید فکر کنید این سینتکس فقط یه خلاصه نویسیه، ولی کامپایلر پشت صحنه یه کار هوشمندانه برای امنیت در برابر خطاها (Exception Safety) انجام میده.
اون اول آبجکت رو تو یه متغیر موقت میسازه و بعد پراپرتیها رو ست میکنه. این کار تضمین میکنه که اگه وسط مقداردهی یکی از پراپرتیها خطایی رخ بده، شما هیچوقت با یه آبجکت نصفه و نیمه و ناقص مواجه نمیشید!
🔖 هشتگها:
#CSharp #Programming #Developer #DotNet #OOP #CleanCode #BestPractices