سفارش تبلیغ
صبا ویژن

 

چگونه می توان کلاس یا متدی و .. بنویسیم که با انواع داده ها کار کند .به طور مثال تابعی بنویسیم که پارامترهای ورودی آن هم از نوع  int و هم از نوع float باشد و یا کلاسی بنویسید که هم پارامتر های int را بپذیرد و هم string (یا هر نوع سفارشی مانند اشیایی که شما از کلاسهای سفارشی خود ایجاد می کنید). حتما می خواهید چندین متد یا چندین کلاس بنویسید و یا فکر می کنید باید override کنید .
اینگونه نیست .از زمان اریه dot net 2 
چند سالی می گذرد ، اما یکی از قابلیتهایی که در آن زمان اضافه شد Generic ها بود ، که تا به امروز هم استفاده فراوانی دارد ها Generic . ساختار گرامری جدیدی به دات نت اضافه کرده اند .مثلا می توانید یک کلاس کلی بنویسید بدون اینکه مشخص کنید که چه نوع داده ای رامی پذیرد .البته این کل ماجرا نیست بلکه به نظر بنده generic ها پاسخی هستند به برخی از نیازها و سواالات زیر:

 

  1. آیا می توان interfaces, classes, methods, events and delegates. داشته باشیم که بتواند انواع مختلف داده را بپذیرد؟
  2. آیا می توان آرایه یا لیستی از عناصر گوناگون داشته باشیم که بتواند انواع مختلف داده ها را در خود ذخیره کند ؟
  3. آیا می توان بدون پیاده سازی مجدد یک الگوریتم آن را با ساختار داده ای متفاوت دیگری بکار ببریم؟

 


سوالات فراوان است اما بنده به همان سه سوال بالا اکتفا می کنم  و وارد بحث خواهم شد ، ابتدا تعریف

تعریف 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 می توانید به امکانات بیشتری جهت تغییر تاریخ و زمان دست یابید.

نمونه برنامه

با تشکر از استاد عزیزم مهندس عواطف رستمی.

pirooz.parsiblog.com


نظر() هزار و یک نکته در سی شارپ ،

  

ایجاد 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


نظر() هزار و یک نکته در سی شارپ ،

  

مشخصات مدیر وبلاگ

محمد محمدی پیروز [33]

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

لوگوی دوستان



ویرایش

طراحی پوسته توسط تیم پارسی بلاگ