PDA

View Full Version : سوال: تبدیل یک نوع به نوعی دیگر در سی شارپ



odiseh
شنبه 04 شهریور 1396, 10:29 صبح
سلام دوستان
چرا این تبدیل درسته و حالا که درسته قانون کلی اش چیه؟

var strings = new List <String >();
var mynewString = (IList <String>) strings;
در مورد قانون کلی این تبدیل میشه لطفا یه مثال بزنید؟

Mahmoud.Afrad
شنبه 04 شهریور 1396, 11:12 صبح
هر نمونه‌ای از یک کلاس را می‌توانید به کلاس پایه و یا اینترفیس‌هایی که پیاده‌سازی کرده‌است ، cast کنید.
کلاس List<T> اینترفیس IList<T> را پیاده‌سازی کرده و این تبدیل مجاز هست
https://msdn.microsoft.com/en-us/library/6sh2ey19.aspx#Syntax
بعد از cast فقط به اجزای اینترفیس و یا کلاسی که بهش تبدیل رو انجام دادید دسترسی دارید و اجزای اینترفیس‌های دیگر در دسترس نیست یعنی ممکنه یکسری متد و ... دیگه در دسترستون نباشه.

odiseh
یک شنبه 05 شهریور 1396, 02:32 صبح
خیلی ممنون از راهنمایی تون

odiseh
دوشنبه 06 شهریور 1396, 22:54 عصر
دوست گرامی من یه سوال دیگه ام دارم:
اساسا چرا باید یک نوع رو به نوع پایه اش cast کنیم که بقول شما برخی از خصوصیات و متدهایی خودش رو از دست میدیم و فقط به اعضاء کلاس یا اینترفیس پایه اش دسترسی داریم خوب؟