اضافه کردن تبدیلات ضمنی موردنظر خود در سی شارپ C#
اضافه کردن تبدیلات ضمنی موردنظر خود در C#
ممکن شما متوجه شوید از بین دو کلاس موجودی که دارید، نیاز به تبدیل مکررکد بین شان داشته باشید.پس شما می توانید هرکجا که لازم بود تبدیل کد را تکرار کنید و یا از برخی از کلاس های تصادفی استفاده کنید.یا شما می توانید یک متد تبدیل ضمنی جدید به یکی از کلاس ها اضافه کنید.
به عنوان مثال اگر شما مجبورید مکررا DeadbeatCustomer رابه PremiumCustomer تبدیل نمایید کافیست کد را در متد تبدیل در کلاس PremiumCustomer که DeadbeatCustomer رامی پذیرد قرار دهید.برای اضافه کردن متد تبدیل به یک کلاس، ابتدا یک متد استاتیک عمومی، به دنبال آن کلمه کلیدی ضمنی،کلمه کلیدی عملگر(اپراتور) و نوع بازگشتی متد را تعریف کنید.
متد باید یک پارامتر از نوعی که شما می خواهید تبدیل کنید را بپذیرد.اینجا تبدیل DeadbeatCustomer به PremiumCustomer وجود دارد.
public class PremiumCustomer
{
public string CustomerId {get; set;}
public string Name {get; set;}
public bool CanUseCredit {get; set;}
public static implicit operator PremiumCustomer(DeadbeatCustomer dbc)
{
PremiumCustomer pc = new PremiumCustomer();
pc.CustomerId = dbc.CustomerId;
pc.Name = dbc.Name;
pc.CanUseCredit = true;
return pc;
}
}
این کدها به طور خودکار متد تبدیل شما را فراخوانی می کنند و به آن رسیدگی می نمایند.
DeadbeatCustomer db = new DeadbeatCustomer();
PremiumCustomer pc = db;
در استفاده از این کدها دقت کنید.
روش بازگشت در خبر بعدی اعلام می شود.