چگونه می توان کلاس یا متدی و .. بنویسیم که با انواع داده ها کار کند .به طور مثال تابعی بنویسیم که پارامترهای ورودی آن هم از نوع int و هم از نوع float باشد و یا کلاسی بنویسید که هم پارامتر های int را بپذیرد و هم string (یا هر نوع سفارشی مانند اشیایی که شما از کلاسهای سفارشی خود ایجاد می کنید). حتما می خواهید چندین متد یا چندین کلاس بنویسید و یا فکر می کنید باید override کنید .
اینگونه نیست .از زمان اریه dot net 2 چند سالی می گذرد ، اما یکی از قابلیتهایی که در آن زمان اضافه شد Generic ها بود ، که تا به امروز هم استفاده فراوانی دارد ها Generic . ساختار گرامری جدیدی به دات نت اضافه کرده اند .مثلا می توانید یک کلاس کلی بنویسید بدون اینکه مشخص کنید که چه نوع داده ای رامی پذیرد .البته این کل ماجرا نیست بلکه به نظر بنده generic ها پاسخی هستند به برخی از نیازها و سواالات زیر:
سوالات فراوان است اما بنده به همان سه سوال بالا اکتفا می کنم و وارد بحث خواهم شد ، ابتدا تعریف
تعریف generic
یککلاس یا متد و یا اینترفیس و غیره شبیه یککلاس) یا متد و یا اینترفیس و غیره( عادی تعریف می شود ، با این تفاوت که بعد از نام کلاس ، نوع generic مشخص می گردد. نوع داده ای generic بوسیله کلاس می توانند به عنوان نوع داده یک عضو از کلاس یا به عنوان نوع داده پارامتری متدها استفاده شوند.
http://s1.picofile.com/alaalawi/Documents/oop/generic.pdf.html
الگوهای طراحی(Design Pattern):
دریافت فایل اصلی این یادداشت.
منبع مورد استفاده
آشنایی با الگوهای طراحی: Singleton Pattern
آشنایی با الگوهای طراحی: Decorator Pattern
پیاده سازی حالت ساده الگوی سینگلتون در یک کلاس
معرفی یک الگوی ساده از ژنریک سینگلتون
تغییر زبان رایانه از انگلیسی به فارسی طی اجرای Application
برای مثال در رویداد لودینگ فرم اصلی Application
//change language EN to FA
private void MainForm_Load( sender, EventArgs e)
{
System.Windows.Forms.InputLanguage.CurrentInputLanguage = System.Windows.Forms.InputLanguage.FromCulture(CultureInfo.CreateSpecificCulture("fa-IR"));
}
چگونه تاریخ میلادی را به تاریخ شمسی تبدیل کنیم؟
همانطور که می دانید تقویم به کار رفته در سیستم عامل ویندوز میلادی است و اگر شما قصد داشته باشید از تاریخ سیستم جهت نمایش تاریخ شمسی استفاده کنید مجبورید که آنرا به تاریخ شمسی تبدیل کنید. برای این کار راههای مختلفی وجود دارد که در زیر به دو روش آن اشاره شده است:
1- با استفاده از PersianCalendar خود سی شارپ(توصیه نمی شود زیرا نسبت به روش دوم دقیقتر است.)
2- با استفاده از دو کلاسی که به صورت DLL در آمده است با نام های Persia.dll و Jalalicalender.dll. در این روش شما باید ابتدا این دو dll را به References پروژه خود اضافه کنید. بعد از این کار شما به کلیه توابع موجود در ساختمان PersianDate دسترسی خواهید داشت. یکی از این توابع در زیر مثال زده شده است:
در رویداد کلیک یک کلید با استفاده از کد زیر تاریخ سیستم را به تاریخ شمسی تبدیل می شود و در یک TextBox به نمایش در می آید:
private void btndata_Click( sender, EventArgs e)
{
textBox1.Text = PersianDate.Now.ToLongDateString();
}
با بررسی سایر توابع موجود در این دو dll می توانید به امکانات بیشتری جهت تغییر تاریخ و زمان دست یابید.
با تشکر از استاد عزیزم مهندس عواطف رستمی.
ایجاد Messge Box با کلیدهای فارسی در سی شارپ
با سلام خدمت کلیه دوستان عزیز!
مطمئنا همه کسانی که برنامه نویسی می کنند با Message BOx آشنایی دارند. اما یکی از مشکلاتی که در این خصوص وجود داره این است که کلیدهای روی MessageBOx به زبان انگلیسی است(منظورمOk,NO,Yes,Cancel هست).
برای حل این مشکل ابتدا کلاس MessageBox را به پروژه خود اضافه کنید.
پس از این کار هر جایی از برنامه خود که خواستید از MessageBOx ها استفاده کنید(مثلا در رویدادFormClosing) باید از کد زیر استفاده کنید:
private void Form1_FormClosing( sender, FormClosingEventArgs e
}
;DialogResult result
result = FarsiMessageBox.MsgBox.ShowMessage(0,
"کاربر گرامی\n خروج از سیستم را تایید می کنید؟", "توجه", "بله", "خیر", "انصراف",
,MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2
;(MessageBoxOptions.RightAlign
(if (result != DialogResult.Yes
{;e.Cancel = true
التماس دعا
با تشکر از abbasarizi@hotmail.com
عناوین یادداشتهای وبلاگ
بایگانی
دسته بندی موضوعی