کاربرد کلمه کلیدی this در سی شارپ

۲ خرداد ۱۳۸۸

کاربرد شماره ۱ - اشاره به فیلدهای کلاس کنونی:

به مثال زیر توجه کنید:

class Employee
{
    string FullName;
    int EmpID;
    double CurrentPay;
 
    public Employee(string FullName, int EmpID, double CurrentPay)
 
    {
 
        FullName = FullName;
        EmpID = EmpID;
        CurrentPay = CurrentPay;
    }
}

در این مثال مشخص نیست هنگام ذکر نام متغیرها در Constructor به پارامترهای آن اشاره می کنیم و یا به فیلدهای هم نام در کلاس.
برای واضح کردن این مورد می توان به شکل زیر با استفاده از کلمه کلیدی this مشکل را حل کرد:

class Employee
{
    string FullName;
    int EmpID;
    double CurrentPay;
 
    public Employee(string FullName, int EmpID, double CurrentPay)
    {
        this.FullName = FullName;
        this.EmpID = EmpID;
        this.CurrentPay = CurrentPay;
    }
}

کاربرد شماره ۲ - Forward کردن متد یا Constructor:

به مثال زیر توجه کنید:

 
class Employee
{
    string FullName;
    int EmpID;
    double CurrentPay;
 
    public Employee(string FullName, int EmpID, double CurrentPay)
    {
        this.FullName = FullName;
        this.EmpID = EmpID;
        this.CurrentPay = CurrentPay;
    }
 
    public Employee(string FullName) : this(FullName, -1, 0)
    { }
 
}
 

در این مثال Constructor دوم که فقط یک پارامتر دارد فراخوانی خود را به Constructor دارای سه پارامتر واگذار خواهد کرد و به جای پارامترهایی که در این Constructor وجود ندارد مقادیر ثابت پاس می دهد.

“هر اتفاقی که برای ما می افتد به نفع ماست”

۲۷ اردیبهشت ۱۳۸۸

امروز این مطلب رو یکی از دوستان برایم ایمیل کرده بود. بنظرم جالبه، شما هم بخوانید:

توی کشوری

یه پادشاهی زندگی میکرد که خیلی مغرور ولی عاقل بود

یه روز برای پادشاه یه انگشتر به عنوان هدیه آوردند
ولی رو نگین انگشتر چیزی ننوشته بود و خیلی ساده بود
شاه پرسید این چرا این قدر ساده است ؟
و چرا چیزی روی آن نوشته نشده است؟
فردی که آن انگشتر را آوره بود گفت:
من این را آورده ام تا شما هر آنچه که میخواهید روی آن بنویسید

شاه به فکر فرو رفت
که چه چیزی بنویسد که لایق شاه باشد
وچه جمله ای به او پند میدهد؟
همه وزیران را صدا زد وگفت
وزیران من  هر جمله و هرحرف با ارزشی که بلد
هستید بگویید

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

تا اینکه یه پیر مردی به دربار آمد و گفت

با شاه کار دارم
گفتند تو با شاه چه کاری داری؟
پیر مرد گفت برایش یه جمله ای آورده ام
همه خندیدند و گفتند تو و جمله
ای پیر مرد تو داری میمیری تو راچه به جمله
خلاصه پیر مرد با کلی التماس توانست آنها را
راضی کند که وارد دربار شود
شاه گفت تو چه جمله ای آورده ای؟
پیر مرد گفت
جمله من اینست
"هر اتفاقی که برای ما می افتد به نفع ماست"
شاه به فکر رفت
و خیلی از این جمله استقبال کرد
و جایزه را به پیر مرد داد
پیر مرد در حال رفتن گفت دیدی که هر اتفاقی که
می افتد به نفع ماست

شاه خشمگین شد و گفت چه گفتی؟
تو سر من کلاه گذاشتی
پیر مرد گفت نه پسرم
به نفع تو هم شد
چون تو بهترین جمله جهان را یافتی

پس از این حرف پیر مرد رفت
شاه خیلی خوشحال بود
که بهترین جمله جهان را دارد
و دستور داد آن را روی انگشترش حک کنند
از آن به بعد شاه هر اتفاقی که برایش پیش میآمد
میگفت
هر اتفاقی که برای ما میافتد به نفع ماست
تا جائی که همه در دربار این جمله را یاد گرفنه
وآن را میگفتند
که هر اتفاقی که برای ما میافتد به نفع ماست
تا اینکه یه روز
پادشاه در حال پوست کندن سبیبی بود که ناگهان
چاقو در رفت و ۲ تا از انگشتان شاه را برید و قطع کرد
شاه ناراحت شد و درد مند وزیرش به او گفت
هر اتفاقی که میافتد به نفع ماست
شاه عصبانی شد و گفت انگشت من قطع شده تو
میگوئی که به نفع ما شده
به زندانبان دستور داد تا وزیر را به زندان
بیندازد وتا او دستور نداده او را در نیاورند

چند روزی گذشت

یک روز پادشاه به شکار رفت
و در جنگل گم شد
تنهای تنها بود
ناگهان قبیله ای به او حمله کردند و او را
گرفتند
و می خواستند او را بخورند
شاه را بستند و او را لخت کردند
این قبیله یک سنتی داشتند که باید فردی که
خورده میشود تمام بدنش سالم باشد
ولی پادشه ۲ تا انگشت نداشت
پس او را ول کردند تا برود

شاه به دربار باز گشت
و دستور داد که وزیر را از زندان در آورند
وزیر آمد نزد شاه و گفت
با من چه کار داری؟
شاه به وزیر خندید و گفت
این جمله ای که گفتی هر اتفای میافتد به نفع
ماست درست بود
من نجات پیدا کردم ولی این به نفع من شد ولی تو
در زندان شدی
این چه نفعی است
شاه این راگفت واو را مسخره کرد

وزیر گفت اتفاقاً به نفع من هم شد
شاه گفت چطور؟
وزیر گفت شما هر کجا که میرفتید من را هم با
خود میبردید
ولی آنجا من نبودم
اگر میبودم آنها مرا میخوردند
پس به نفع منهم بوده است
وزیر این را گفت و رفت

پایان

پراکنده ۱

۱۰ تیر ۱۳۸۷

Jalali Multi Pack Pro 2008

من همیشه به نرم افزارهایی که استفاده یا مرور میکنم بعنوان برنامه نویس نگاه می کنم. بر اساس این دیدگاه به نرم افزارهای تولید داخل کشور معمولا از ۲۰ نمره، زیر ۵ میدم.

اما این یکی از لحاظ کیفیت و کارائی نمره بالای ۱۵ دریافت میکنه: Edsoft Jalali Multi Pack Professional 4.3

بنظرم ارزش پولی رو که دریافت میکنند داره.

اولین تجربه واقعی  با Internet Explorer 7

برنامه نویس هایی که برای سازمان های دولتی و ارگان های وابسته اونها کار می کنند اکثرا افرادی هستند بس شگفت، و نتایج کارهاشون آدم رو شگفتانه (جایگزین سورپرایز) میکنه.

سیستم بانکداری اینترنتی (سبا) بانک ملی با جاوا نوشته شده و فقط با Internet Explorer کار می کنه.

هنگام باز کردن سایت فوق با استفاده از Internet Explorer 6 و رفتن به صفحه انتقال وجه یک Security Warning هی روی صفحه باز میشه و می پرسه "به این صفحه اجازه دسترسی به محتویات کلیپ بورد رو می دهید؟" ، مهم نیست چه پاسخی می دهید، این سوال به تعداد بی نهایت بار تکرار میشه.

با خودم گفتم IE 7 رو نصب کنم شاید مشکل برطرف بشه. پس از نصب IE 7 با یک مشکل عجیب برخوردم: فقط سایت های لوکال رو باز میکرد. هنگام دسترسی به سایت هایی که روی اینترنت هستند میگفت "Can not display the page". این عبارت رو تو گوگل سرچ کردم و پس از مرور دهها راه حل و انجام توصیه های اونها، هیچ یک موثر نیافتاد. تنها چیزی که متوجه شدم اینه بعضی پلاگین های IE 7 (که بر اساس تکنولوژی COM کار می کنند) در صورت عدم کارکرد صحیح می تونن چنین خطایی رو باعث شوند. ولی این هم کمکی نکرد.

بطور اتفاقی Kaspersky Security Suite رو که Disable اش کرده بودم رو Enable کردم و دوباره امتحان کردم، IE 7 شروع به کار کرد.

یکی نیست به تیم توسعه بروزر مایکروسافت بگه: "چرا کار نصفه و نیمه رو منتشر می کنید؟"...

راستی:

تولدم مبارک!

من امروز ۳۱ ساله شدم.

کتاب الکترونیکی رایگان: شالوده برنامه نویسی

۱۰ تیر ۱۳۸۷

کارل سگوئین در سایت CodeBetter.com یک کتاب الکترونیکی رایگان بنام "شالوده برنامه نویسی" (Foundations of Programming) منتشر کرده است.

این کتاب شامل ۹ بخش و بحث درباره روشهای برنامه نویسی است.

تعدادی از موارد بحث شده در این کتاب عبارتند از:

  • Domain Driven Design
  • Persistence
  • Dependency Injection
  • Unit Testing
  • Object Relational Mappers
  • Back to Basics: Memory
  • Back to Basics: Exceptions
  • Back to Basics: Proxy This and Proxy That

لینک صفحه مورد بحث

لینک دانلود کتاب الکترونیکی مذکور

خواندن این کتاب را به کلیه برنامه نویسان و کسانی که به این مباحث علاقه مند هستند توصیه می کنم.

Asshole Driven Development

۲۱ بهمن ۱۳۸۶

طی ۱۵ سال حضورم در صنعت نرم افزار شاهد ظهور متدولوژی هایی در زمینه توسعه نرم افزار مانند Test Driven Development ، Extreme Programming و امثال اون بودم، اما تا امروز چیزی درباره Asshole Driven Development نشنیده بودم. می تونید درباره این متدولوژی در اینجا بخونید و بخندید.

مقالات آموزشی جدید در مورد اهراز هویت (Authentication) در دات نت

۱۸ بهمن ۱۳۸۶

امروز دیدم چند تا مقاله جالب و مفید در سایت ASP.NET اضافه شده. خواندنش خالی از لطف نیست: http://www.asp.net/learn/security

لینک های هفته دوم بهمن ماه ۸۶

۱۰ بهمن ۱۳۸۶

برای این هفته تعدادی لینک مفید در زمینه دات نت و ویژوال استودیو ۲۰۰۸ برایتان لیست می کنم.

برگه مقایسه تفصیلی نگارشهای مختلف ویژوال استودیو ۲۰۰۸

در این برگه مقایسه جامعی از امکانات و جزئیات نگارشهای مختلف ویژوال استودیو ۲۰۰۸ ارائه شده است. در لینک فوق می توانید این برگه را در سه فرمت مختلف دریافت کنید.

ابزار مشاهده ساختار سورس کد برای ویژوال استودیو ۲۰۰۸

این ابزار یک افزونه برای ویژوال استودیو ۲۰۰۸ است که یک نمای درختی از Type ها و Member های سورس کد شما را نمایش داده و امکان دسترسی سریع به آنها و فیلتر کردن حالت نمایش در ادیتور را به شما می دهد.

InnoSetup در ویژوال استودیو ۲۰۰۵

۲۹ دی ۱۳۸۶

در مطلب قبلی درباره استفاده از InnoSetup برای ساختن نصب ساز فارسی برایتان نوشتم.

امروز به چیز جالبی برخوردم: InnoSetup Integration for Visual Studio 2005

خواندن دنباله‌ی این نوشته »

ساخت Setup فارسی برای برنامه ها

۲۷ دی ۱۳۸۶

خیلی وقت پیش فکر میکردم چقدر خوب بود یک Setup ساز فارسی وجود داشت و میتونستم از اون استفاده کنم. میدونستم Null Soft Installation System که (رایگان هم هست) زبان فارسی رو پشتیبانی میکنه، اما GUI قشنگی نداره.

در تحقیقات بیشتر InnoSetup رو پیدا کردم که با دلفی نوشته شده و سورس اش هم از اینترنت بصورت آزاد قابل دریافت است. سعی کردم فارسی اش کنم، اما اون موقع فرصت نشد بیشتر رویش کار کنم.

چند وقت پیش که دوباره چک کردم، دیدم یه آقای عرب لطف نموده و نسخه راست به چپ اش رو ساخته. زبان فارسی هم برای رابط کاربری InnoSetup موجوده. فقط کافیه ازش استفاده کنید :)

خواندن دنباله‌ی این نوشته »

phpBB3

۴ دی ۱۳۸۶

اون هایی که به نرم افزار قدیمی راه اندازی فوروم معروف phpBB ارادت دارند حتما می دونند که نسخه نهایی از نسل سوم چند روزی هست که منتشر شده. من هم بر اساس رسم دیرینه مترجم زبان فارسی بودن برای این محصول ترجمه زبان فارسی اش رو شروع کرده ام. تا الان چیزی حدود ۷ تا ۸ درصد کار ترجمه پیشرفت کرده است (انصافا تعداد جمله هایی که باید ترجمه بشه خیلی زیاده).

بعدا باز هم در مورد چیزهای جدیدی که در این نسخه اضافه شده خواهم نوشت، فعلا علی الحساب این تصویر رو از صفحه اصلی برنامه با مقداری از ترجمه که تا کنون انجام شده مشاهده بنمائید:

تصویری از صفحه اصلی phpBB۳ در حالتی که زبان فارسی انتخاب شده است.

تا بعد.