PDA

View Full Version : سوال: سوال در رابطه با null



me1364
یک شنبه 09 اسفند 1388, 21:56 عصر
سلام دوستان.
میخواستم بدونم در کد زیر

if (btnTest != null)
{
......
......
}
اگر null سمت چپ btnSender باشه چه فرقی میکنه؟ چرا عده ایی اینطوری مینویسند؟

FastCode
یک شنبه 09 اسفند 1388, 22:19 عصر
علتش اینه که اگر اونطوری بنویسن توی مانیتور های کوچک راحت تر میتونن بفهمن که btnTest با چی مقایسه شده.
هیچ دلیل دیگه ای نداره.

Open-Source
دوشنبه 10 اسفند 1388, 09:42 صبح
به قول معروف:
چه خالو علی چه علی خالو ، هر جفتش یکیه.
:بامزه:

silverfox
دوشنبه 10 اسفند 1388, 22:56 عصر
از نظر منطقی فرق می کنه اگه از نظر خروجی یکیه....داریم چک می کنیم که متغیرمون نال هست یا نه...نه اینکه نال مساوی متغیر ماست یا نه...

SMRAH1
سه شنبه 11 اسفند 1388, 12:06 عصر
سلام
اون قدیم ها که ناصرالدین شاه هم برنامه می نوشت (منظورم عصر پارینه سنگی:قهقهه:) ،کامپایلر ها مثل امروز اینهمه باهوش و قدرت مند نبودن.به همین دلیل برخی نکات کوچیک توی کد نویسی،می تونست برنامه رو سریعتر بکنه (با CPU که داس به زور توش بالا میومد این سریعنر یعنی سرعت نور!)
یادمه در همون سال ها، مقاله ای خوندم که چند نکته رو برای ایجاد کد هایی که ظاهرا یکی هستن ولی کمی سریعتر عمل می کنن،خودندم که یک نکته اون همین مسئله بود : اگر می خواهید یک متغیر رو با یک عدد صحیح مقایسه کند ،بهتره اول عدد رو بار کنید یا مثلا اگر می خواهید صفر نبود یا NULL نبودن یک متغیر رو تست کنید ،به جای

if(x==0)
از

if(!x)
استفاده کنید و ...
اولا تاکید کنم که این نکات برای برنامه نویسی سی بودن و توی #C یا موضوعیت ندارن (مثل گذاشت عدد در سمت چپ تساوی) یا اصلا درست نیستن (x! در #C خطا داره چون در if باید حتما یک مقدار bool داشته باشم)
حالا این نکات قدیمی و زبان دیگه چه ربطی به #C داره. جوابش اینه : «ترک عادت موجب مرض است:چشمک:».کسایی که مثل من فسیل شدن دیگه نمی تونن عادت های قدیمی رو عوض کنن (البته منطقی هم نیست و بهتره همچنان همان عادت ها رو داشته باشم چون هنوز گاهی بدرد می خوره).

دو سال پیش،مصاحبه ای رو خوندم که با سازنده کامپیوتر (1945) ، دکتر ... (اسمش یادم نیست) در سال 1990 یا همون حدود ها،انجام شده بود.ایشون یک جمله گفته بودن که واقعا وصف حال برنامه نویس ها این دور و زمونه است : «برنامه نویس های امروز به شکل بهینه ای منابع سیستم رو هدر می دن».شاید حالا که CPU ها خودشون هسته می زایند:قهقهه: و RAM اونقدر داری که حجمش رو نمیتونی توی یک متغیر long بریزی و ... دیگه توجهی به نکات کلیدی قدیمی نمیشه.
در این میان هم نقش کامپایلر های قدرت مند امروزی هم برای تولید کد بهینه،کم نیست.
موفق باشید