-
جمعه 20 آذر 1388, 04:23 صبح
#1
VIP
هزار و یک ایراد در تاپیک هزار و یک نکته در سی شارپ!
سلام.
تقریبا دو سال پیش بود که بخاطر ارسال 5 ایراد در تاپیک مزبور، جریمه شدم و پستهایم (که در همون تاپیک آوردم) توسط ارسال کننده تاپیک حذف شد. حالا قصد دارم تا در مواقع بیکاری و هر وقت حوصله ام اومد، توی این تاپیک، ایرادهای موجود در اون (به اصطلاح) نکته ها رو باز هم مطرح کنم. امیدوارم هر کسی اون تاپیک رو میخونه، اینها رو هم بخونه تا به اشتباه نیفته. از اولین تاپیک شروع می کنم:
ایراد پست شماره 5: حاشیه دار کردن کنترل TextBox با یک رنگ دلخواه
در تکه کد نوشته شده، چند ایراد به چشم میخوره. ابتدا اینکه DC گرفته شده توسط Graphics.FromHdc حتما باید پس از اتمام کار، dispose بشه و الا DC گرفته شده به سیستم بر نمیگیرده! ایراد دوم مقدار دهی پارامتر flags به اینصورته: 1 | 0x0020. این مقادر (یعنی DCX Flag ها) باید مثل WM_ (پیامها) ابتدا بصورت enum یا constant تعریف بشن و سپس از این تعاریف در تابع مزبور استفاده کرد. نکته قابل توجه این هستش که پارامتر دوم همین تابع (hrgnClip) نیز از همین مقادیر استفاده می کنه... ایراد آخر، جایی هستش که ReleaseDC فراخوانی شده. در واقع اگر بهر دلیلی GetDCEx حافظه مورد نظر رو برگردونه ولی اجرای برنامه قبل از خط ReleaseDC به ایراد بخوره، حافظه گرفته شده به سیستم برگردونده نمیشه و Memory Leak بوجود میاد. بنابراین باید فراخوانی ReleaseDC حتما در finally block رخ بده.
برچسب های این تاپیک
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت