نوع جدیدی در دات نت 4 به نام Tuple اضافه شده است که در این مطلب به بررسی آن خواهیم پرداخت.در ریاضیات، Tuple به معنای لیست مرتبی از اعضاء با تعداد مشخص است. Tuple در زبانهای برنامه نویسی Dynamic مانند اف شارپ، Perl ، LISP و بسیاری موارد دیگر مطلب جدیدی نیست. در زبانهای dynamic برنامه نویسها میتوانند متغیرها را بدون معرفی نوع آنها تعریف کنند. اما در زبانهای Static مانند سی شارپ، برنامه نویسها موظفند نوع متغیرها را پیش از کامپایل آنها ...
سری معروف فیبوناچی که معرف حضور شما هست. سری از اعداد است که هر عدد آن مساوی حاصل جمع دو عدد ماقبل آن است. دو عدد اول این سری هم 0 و 1 هستند.اگر بخواهیم این الگوریتم را به صورت یک متد بازگشتی نمایش دهیم به صورت زیر خواهد بود:public static int Fibonacci(int x){ if (x <= 1) return 1; return Fibonacci(x - 1) + Fibonacci(x - 2);}این الگوریتم چند مشکل دارد:الف) برای اعداد بزرگ حتی با بکارگیری Int64 و یا double و امثال آن هم با ...
سلامسال نو مبارک! به امید سالی بهتر از پارسال!این روزها با هزینهای معادل هزینهی تهیهی یک هاست اشتراکی سالیانه برای بالاگذاری یک سایت معمولی در 5 سال قبل، میتوان یک VPS تهیه کرد و به این صورت قفل و کلید یک نیمچه سرور را (با 200 و خردهای مگ رم، 30 گیگ فضا، سرعت CPU نزدیک به 700 MHz و ویندوز سرور 2003 یا 2008) در اختیار شما قرار میدهند (البته به قول معروف هر چقدر پول بدهید همانقدر هم سخت افزار در اختیار شما قرار میدهند) بجای صرفا یک د ...
دو فایل زیر مقاله و خلاصه مقالهای در مورد روشهای بهتر کد نویسی با سی شارپ 3 هستند.رهنمودها + خلاصهاین رهنمودها (و نه استانداردها) جهت بالا بردن کیفیت کدهای تهیه شده، یک دست شدن آنها در یک سازمان، تهیه مستندات بهتر و امکان نگهداری سادهتر آنها، بسیار مؤثرند.تعدادی از آنها را در مقالهی "زیباتر کد بنویسیم" دیدهاید. مقالات فوق گردآوری و به روز رسانی اینگونه نکات جهت پوشش دادن سی شارپ 3 میباشند.ماخذ
تفاوت بین یک کلاس استاتیک، متدی استاتیک و یا متغیر عضو استاتیک چیست؟ چه زمانی باید از آنها استفاده کرد و لزوم بودن آنها چیست؟برای پاسخ دادن به این سؤالات باید از نحوهی تقسیم بندی حافظه شروع کرد.RAM برای هر نوع پروسهای که در آن بارگذاری میشود به سه قسمت تقسیم میگردد: Stack ، Heap و Static (استاتیک در دات نت در حقیقت قسمتی از Heap است که به آن High Frequency Heap نیز گفته میشود).این قسمت استاتیک حافظه، محل نگهداری متدها و متغیرهای ا ...
در دات نت فریم ورک امکان کامپایل پویای یک قطعه کد دریافت شده از یک رشته، توسط فضای نام CodeDom مهیا است که قدرت قابل توجهی را در اختیار برنامه نویس قرار میدهد.مثال یک:رشته زیر را کامپایل کرده و تبدیل به یک فایل exe کنید: string source = @" namespace Foo { public class Bar { static void Main(string[] args) { ...
یک سری قابلیت در فضای نام Microsoft.VisualBasic وجود دارد که به ظاهر سایر برنامه نویسان دات نت از آن محروم هستند. برای مثال My.Computer.Network.IsAvailable برای بررسی اینکه آیا اتصال به شبکه برقرار است یا My.Computer.Audio.Play جهت نواختن یک فایل صوتی، کلاسهای My.Application، My.Computer، My.User My.Webservices، My.DataSources و امثال آن.از این فضای نام در C# یا تمامی زبانهای دیگر دات نت نیز میتوان استفاده کرد. تنها کافی است ارجاعی را ...
جیمیل هر ایمیلی را که به همراه آن یک فایل اجرایی پیوست شده باشد برگشت میزند. Zip کردن آن هم فایده ندارد چون محتویات فایلهای zip را هم بررسی میکند! فقط به نظر فرمت rar و همچنین 7z را بررسی نمیکند (احتمالا با مجوز آن مشکل دارد).قویترین برنامه سورس بازی که این فرمت را پشتیبانی میکند، برنامه 7zip است و خوشبختانه محصور کنندههایی نیز جهت کار با کتابخانههای این برنامه برای دات نت فریم ورک موجود است. برای مثال:SevenZipSharpمزیت استفاده ا ...
گوگل اجازهی فعال کردن POP3 را روی اکانتها GMail میدهد. فرض کنید با استفاده از یکی از کلاینتهای POP3 دات نت میخواهیم ایمیلها را با برنامه نویسی دریافت کنیم (و مثلا از Outlook استفاده نکنیم). اکنون به نظر شما عنوان دریافت شده زیر چه معنایی دارد؟=?UTF-8?B?QW5hbHl0aWNzIHZhaGlkbmFzaXJpLmJsb2dzcG90LmNvbSAyMDA4MTIyNiAo2KLZhdin?= =?UTF-8?B?2LEg2LPYp9mK2Kop?=برای درک اتفاق رخ داده باید به RFC های مربوطه مراجعه کرد (RFC-2822 و RFC-2047). مطاب ...
دستگاه کارتخوان تحت شبکهای را تصور کنید که تا دیروز در شبکه دیده میشد اما امروز ناپدید شده! دیگر نمیشود با آن ارتباط برقرار کرد و توسط برنامه نوشته شده آنرا تخلیه کرد. به صورت پیش فرض یک IP ثابت به این دستگاهها انتساب داده میشود مثلا 192.168.1.100 . حال اگر در شبکه این IP رزرو نشود ممکن است DHCP این IP را به کامپیوتر دیگری بدهد یا روتری به اشتباه از آن استفاده کند. الان چطور باید تشخیص داد که این IP توسط چه وسیلهای در حال استفاده اس ...