PDA

View Full Version : سوال: کاربرد کلمات کلیدی as و is در سی شارپ



software90
پنج شنبه 22 دی 1390, 21:38 عصر
سلام دوستان...
میشه بگید کاربرد این کلمات کلیدی در کد سی شارپ چیه؟؟
is & as
لطفا یکم براش توضیح بدین
مثلا این جا

DirectoryInfo primaryDir = e.Argument as DirectoryInfo

با تشکر پیشاپیش

zarrinnegar
پنج شنبه 22 دی 1390, 21:47 عصر
کلمه as برای تبدیل دو نوع یکسان از داده ها استفاده میشود
کلمه is در رمان اجرا چک میکند که آیا 2 متغیر با هم هم نوعند یا خیر

software90
پنج شنبه 22 دی 1390, 22:15 عصر
میشه برای هر کدوم یک مثال کوچیک بزنید دوست من
راستی دو نوع که یکسان هستن مگه لازمه بهم تبدیل بشن ؟؟ int to int??

mohammad272005
پنج شنبه 22 دی 1390, 22:27 عصر
public string GetName(object t)
{
if(t is Person)
{
Person person = t as Person;
return person.Name;
}
else
return string.Empty;
}

zarrinnegar
جمعه 23 دی 1390, 21:54 عصر
میشه برای هر کدوم یک مثال کوچیک بزنید دوست من
راستی دو نوع که یکسان هستن مگه لازمه بهم تبدیل بشن ؟؟ int to int??

مثالی که خودت زدی رو نگاه کن
DirectoryInfo primaryDir = e.Argument as DirectoryInfo
e.Argument رو داره تبدیل میکنه به نوع DirectoryInfo
اگر نوع ورودی از نوع مقصد نباشه باز هم تبدیل میکنه

meysamrt
شنبه 24 دی 1390, 00:21 صبح
مثالی که خودت زدی رو نگاه کن
DirectoryInfo primaryDir = e.Argument as DirectoryInfo

e.Argument رو داره تبدیل میکنه به نوع DirectoryInfo
اگر نوع ورودی از نوع مقصد نباشه باز هم تبدیل میکنه

اگر تبدیل امکان پذیر نباشه null برمیگردونه. در واقع as عمل casting رو برای اشیا انجام میده.


double d=12.5;
int i=(int)d;
به عمل فوق میگن Casting
object obj=new Person();
Person p=(Person) obj;
یا
Person p=obj as Person;

obj=new Sale();
p=obj as Person;
در این صورت p برابر null میشه

shadi khanum
شنبه 24 دی 1390, 12:40 عصر
is و As جفتش برای casting استفاده میشه ولی بهتره که از as استفاده کنی.چون که با is مجبوری دو بار casting انجام بدی و performance برنامه پایین میاد ولی با as یک بار Casting انجام میشه.. این مثال رو ببین...
اول با is
if (t is person)
{
person m = (person)t;

}
اینجا دو بار t رو Cast میکنی یه بار برای چک کردن و دفعه دوم موقع استفاده...
حالا اگه با As بنویسی:
person m;
m = t as person;
if (m != null)
{

}
اینجا فقط یه بار cast میکنی و اگه قابل Cast بود که CAst میشه و اگه نبود متغیرت null میشه

parsa lotfy
یک شنبه 09 اسفند 1394, 07:47 صبح
اصلا Cast یعنی چی ؟؟؟؟:لبخند:

من کاربرد is رو متوجه شدم ولی نفهمیدم کاربرد as چیه و دقیقا چیکار میکنه :متفکر::متفکر::متفکر: