PDA

View Full Version : این دو کد چه فرقی با هم دارند؟



AlgorithmX
دوشنبه 20 تیر 1390, 22:56 عصر
این دو کد چه فرقی با هم دارند؟
هر دو هم درست کار می کنند:

int a = 0;
int b = (int)a;

int a = 0;
int b = a;

mohammadian7
دوشنبه 20 تیر 1390, 23:04 عصر
سلام هیچ فرقی نداره ولی آدم رو به شک میندازه که نکنه فرقی داشته باشه ولی من میگم که نداره

centerpace
دوشنبه 20 تیر 1390, 23:04 عصر
ازاونجایی که به مقدار aصفر دادین فرق نمی کنن.ولی اگه به a یه مقداردیگه بدین خیلی فرق می کنن.چون وقتی توی کد اول aدوباره تعریف میشه مقدار پیش فرض اون صفر هستش.واسه همین جواب یکی میشه.

AlgorithmX
سه شنبه 21 تیر 1390, 00:04 صبح
ازاونجایی که به مقدار aصفر دادین فرق نمی کنن.ولی اگه به a یه مقداردیگه بدین خیلی فرق می کنن.چون وقتی توی کد اول aدوباره تعریف میشه مقدار پیش فرض اون صفر هستش.واسه همین جواب یکی میشه.
چه فرقی می کنه a چند باشه؟

در هر صورت در این دو کد مقدار b یکسان است.
در اینجا :
int a = 5;
int b = (int)a;
int a = 0;
int b = a;
در هر دو کد بالا b برابر 0 میشه و در دو کد پایین هم برابر 5
int a = 5;
int b = (int)a;
int a = 5;
int b = a;

سوال من اینه که کاره (int) چیه؟

esh_computer110
سه شنبه 21 تیر 1390, 00:34 صبح
به این که قبل از یک متغییر یک دیتاتایپ (نوع) مثل اینت یا استرینگ قرار دهید تغییر نوع موقت میگویند
مثال


float ESH = 20.50f;
int result=(int)ESH;


در اینجا ما مقدار متغییر اعشاری را به صحیح تبدیل کرده ایم و آن را به داخل یک متغییر صحیح ریخته ایم درحالی که مقدار متغییر اعشاری هم حفظ شده است این روش کد نویسی در زبانهای سی و سی پلاس پلاس رایج بوده تبدیل نوع یا همان typecasting به این صورت انجام می شده وسی شارپ هم چون بر پایه زبان سی ایجاد شده است این امکان را در خود گذاشته تا کسانی که با زبان های سی و سی پلاس پلاس کار میکردند از این ویژگی در سی شارپ هم استفاده کنند اما دربرنامه نویسی شی گرایی باید شما به این صورت عمل کنید که صحیح تر هم است و راه اصلی تبدیل نوع سی شارپ می باشد


int result = Convert.ToInt16(ESH);


هر 2 کد یک کار را انجام میدهند.تابع convert برای تبدیل از هر نوعی به نوع دیگر قابل استفاده است.
تشکر یادتون نره

gwbasic
سه شنبه 21 تیر 1390, 14:05 عصر
casting کاملا بحث متفاوتیه با Convert کردن بخصوص این موضوع در Type هایی غیر از primitive خودشو نشون میده منظورم Reference type ها هستند که عمل Casting در آنها فقط یک تغییر در زاویه دید هست ... .

لطفا برای توضیحات کامل به تاپیکی که تحت عنوان آموزش زبان سی شارپ در همین سایت گذاشتم مراجعه کنید

amir.nazarizadeh
چهارشنبه 11 مرداد 1391, 17:47 عصر
مقدار اولیه a صفر هستش اگه توی یه قسمتی از a استفاده بشه مثلا توی یه Textbox که عدد می گیره استفاده بشه و مقدار a عوض بشه قسمت صحیح a نشون داده میشه ازون جایی که a خودش int هست پس فرقی نمی کنه!!!