سلام دوستان
چرا این تبدیل درسته و حالا که درسته قانون کلی اش چیه؟
var strings = new List <String >();
var mynewString = (IList <String>) strings;
در مورد قانون کلی این تبدیل میشه لطفا یه مثال بزنید؟
سلام دوستان
چرا این تبدیل درسته و حالا که درسته قانون کلی اش چیه؟
var strings = new List <String >();
var mynewString = (IList <String>) strings;
در مورد قانون کلی این تبدیل میشه لطفا یه مثال بزنید؟
آخرین ویرایش به وسیله Mahmoud.Afrad : شنبه 04 شهریور 1396 در 10:56 صبح
هر نمونهای از یک کلاس را میتوانید به کلاس پایه و یا اینترفیسهایی که پیادهسازی کردهاست ، cast کنید.
کلاس List<T> اینترفیس IList<T> را پیادهسازی کرده و این تبدیل مجاز هست
https://msdn.microsoft.com/en-us/lib...19.aspx#Syntax
بعد از cast فقط به اجزای اینترفیس و یا کلاسی که بهش تبدیل رو انجام دادید دسترسی دارید و اجزای اینترفیسهای دیگر در دسترس نیست یعنی ممکنه یکسری متد و ... دیگه در دسترستون نباشه.
خیلی ممنون از راهنمایی تون
دوست گرامی من یه سوال دیگه ام دارم:
اساسا چرا باید یک نوع رو به نوع پایه اش cast کنیم که بقول شما برخی از خصوصیات و متدهایی خودش رو از دست میدیم و فقط به اعضاء کلاس یا اینترفیس پایه اش دسترسی داریم خوب؟