تور لحظه آخری
امروز : یکشنبه ، 26 اسفند 1403    احادیث و روایات:  امام علی (ع):تلخى حق را تحمل كن، و مبادا كه فريب شيرينى باطل را بخورى.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

خرید پرینتر سه بعدی

سایبان ماشین

اجاره سند در شیراز

armanekasbokar

armanetejarat

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

بانک کتاب

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

قیمت فرش

خرید بلیط هواپیما

بلیط اتوبوس پایانه

خرید از چین

خرید از چین

خرید سرور اچ پی ماهان شبکه

خودارزیابی چیست

رزرو هتل خارجی

تولید کننده تخت زیبایی

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

خرید یوسی

مهاجرت به استرالیا

ایونا

تعمیرگاه هیوندای

کاشت ابرو با خواب طبیعی

هدایای تبلیغاتی

خرید عسل

صندوق سهامی

تزریق ژل

خرید زعفران مرغوب

تحصیل آنلاین آمریکا

سوالات آیین نامه

سمپاشی سوسک فاضلاب

مبل کلاسیک

بهترین دکتر پروتز سینه در تهران

صندلی گیمینگ

کفش ایمنی و کار

دفترچه تبلیغاتی

خرید سی پی

قالیشویی کرج

سررسید 1404

تقویم رومیزی 1404

ویزای توریستی ژاپن

قالیشویی اسلامشهر

قفسه فروشگاهی

چراغ خطی

ابزارهای هوش مصنوعی

آموزش مکالمه عربی

اینتیتر

استابلایزر

خرید لباس

7 little words daily answers

7 little words daily answers

7 little words daily answers

گوشی موبایل اقساطی

ماساژور تفنگی

قیمت ساندویچ پانل

مجوز آژانس مسافرتی

پنجره دوجداره

خرید رنگ نمای ساختمان

ناب مووی

خرید عطر

قرص اسلیم پلاس

nyt mini crossword answers

مشاوره تبلیغاتی رایگان

دانلود فیلم

قیمت ایکس باکس

نمایندگی دوو تهران

 






آمار وبسایت

 تعداد کل بازدیدها : 1865445292




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

نکات برنامه نویسی در #c


واضح آرشیو وب فارسی:سایت ریسک: rtech2nd September 2008, 09:14 PMچگونه یک کلاس را مهر وموم کنیم؟ کافی است در اعلان کلاس و بعد از Access modifier از کلمه کلیدی sealed استفاده کنیم. public sealed class MyClass{} rtech2nd September 2008, 09:16 PMAbstract Class در مقابل Interface در حالیکه ممکن است بین یک Abstract Class (کلاس مجرد) و یک اینترفیس تشابهات زیادی وجود بنظر برسد اما تفاوتهای بین آن دو بیشتر است. تفاوتها و اینکه کجا بهتر است از کدام استفاده کنیم : کلاس مجرد یکی از انواع کلاس است اما اینترفیس یک کلاس نیست. اینترفیس یک قرارداد را مشخص میکند اما کلاس مجرد ناتمام ماندن تعریف یک کلاس را. یک اینترفیس به هیچ عنوان نمیتواند شامل پیاده سازی درون خود باشد اما یک کلاس مجرد میتواند شامل پیاده سازیهای پیشفرض باشد (اعضایی داشته باشد که بصورت کامل و یا پیشفرض پیاده سازی شده اند) یک کلاس میتواند چندین اینترفیس را پیاده سازی کند اما تنها میتواند از یک کلاس مجرد به ارث رود. بصورت پیشفرض اعضای یک اینترفیس تماما public هستند و نمیتوان برای آنها access modifier انتخاب کرد در حالیکه در یک کلاس مجرد ممکن است. یک کلاس مجرد میتواند شامل فیلد، constructor، destructor و مقادیر ثابت باشد درحالیکه یک اینترفیس نمیتواند. بصورت کلی کار کردن با یک کلاس مجرد سریعتر از یک اینترفیس است. اینترفیسها برای نشان دادن قابلیتهای جانبی یک کلاس بکار میروند (مثلا چون هم انسان و هم اتومبیل حرکت میکنند هر دو میتوانند اینترفیس IMovable رو پیاده سازی کنند) درحالیکه یک کلاس مجرد خواص و رفتارهای اصلی یک کلاس را مشخص میکند. مورد قبلی بصورت خلاصه میشود : یک اینترفیس اغلب برای رابطه هایی مانند can-do و یا able-to استفاده میشود در حالیکه یک کلاس مجرد برای رابطه هایی از نوع : is-a اگر برای مثال یک متود را به یک اینترفیس اضافه کنیم باید تمامی جاهاییکه آن اینترفیس پیاده سازی شده را دنبال و متود مورد نظر را در آنجا پیاده سازی کنیم در حالیکه اگر از یک کلاس مجرد استفاده کنیم میتوانیم در همانجا متود را با پیاده سازی پیشفرض تعریف کنیم تا به مشکل برنخوریم. برای ایجاد خواص و رفتارهای مشابه روی مجموعه های بزرگ و نامرتبط از موجودات بهتر است از اینترفیس کمک بگیریم. یک کلاس مجرد تنها برای دسته بندی موجودات مرتبط بکار میرود. ... ادامه دارد توجه : برخی از موارد بالا ممکن است کاملا معنای یکسانی داشته باشند و تنها در ساختار جمله بندی و یا زاویه ی نگرش تفاوت داشته باشند. منابع : کاربران ثبت نام کرده قادر به مشاهده لینک می باشند (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) کاربران ثبت نام کرده قادر به مشاهده لینک می باشند(vs.71).aspx (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) کاربران ثبت نام کرده قادر به مشاهده لینک می باشند (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) کاربران ثبت نام کرده قادر به مشاهده لینک می باشند (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) کاربران ثبت نام کرده قادر به مشاهده لینک می باشند (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) کاربران ثبت نام کرده قادر به مشاهده لینک می باشند (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) rtech2nd September 2008, 09:17 PMMethod overloading چیست؟ تعریف Method overloading : به امکان تعریف چندین متود با نام یکسان اما متفاوت درامضا( نوع و تعداد پارامترها )در یک کلاس گفته می شود .در واقع امکان داشتن ورژنهای مختلفی از یک متود درون یک کلاس.موارد زیر در Method overloading مطرح می باشند: برای overload کردن یک متود باید متودهایی با signature های متمایز از یکدیگر ایجاد کنیم.signature هر متود شامل نوع , ترتیب و تعداد پارامترها می باشد. return type یا مقدار برگشتی هر متود شامل signature متود نمی شود ,در #c مجاز نیستیم 2متود با signature یکسان امابا مقادیر برگشتی متفاوت داشته باشیم. public class MyMathClass { public int AddNum(int x) { return x + x; } public int AddNum(int x, int y) { return x + y; } public float AddNum(float x) { return x + x; } } rtech2nd September 2008, 09:17 PMabstract class یا کلاس مجرد چیست؟ abstract class ,کلاس غیر قطعی و ناتمامی است که در سطح فرزندانش باید پیاده سازی آن تکمیل گردد. ویژگیهای abstract class : در اعلان کلاس abstract از کلمه کلیدی abstract قبل از class استفاده می کنیم. اگر کلاسی تنها یک رفتار و یا خاصیت غیر قطعی داشته باشد آن کلاس تبدیل به یک کلاس مجرد و غیر قطعی میگردد. abstract class ها non-instantiatable هستند.در واقع به علت ناتمام بودن پیاده سازیشان نمی توانیم از آنها instanceبسازیم. abstract class ها حداقل یک یا بیشتر متود یا پروپرتی abstract دارند.abstract member ها بدون هیچگونه پیاده سازی فقط declare می شوند.abstract member ها قابل تعریف در کلاسی غیر از کلاس abstract نیستند. کلاسهای فرزند abstract class باید تمامی abstract member ها را پیاده سازی کنند. از کلمه کلیدی sealed در اعلان abstract class نمی توانیم استفاده کنیم .در واقع abstract class باید توسط فرزندانش به ارث رود. متودهای مجرد و غیر قطعی که نیاز به overrid شدن دارند ,نیازی به کلمه کلیدی virtual ندارند .در واقع کلمه کلیدی virtual در کلمه abstract نهفته است. rtech2nd September 2008, 09:18 PMتضمین آنکه چطور همیشه پس از اتمام کار با یک آبجکت حتما از حافظه خارج (dispose) شود عادت کنید که همیشه از using استفاده کنید. برای مثال : using (FileStream FS = new FileStream("Test.txt", FileMode.Create)) { FS.WriteByte((byte)1); FS.WriteByte((byte)2); FS.WriteByte((byte)3); using (StreamWriter SW = new StreamWriter(FS)) { SW.WriteLine("some text."); } } که اگر بخواهید مثال بالا را به بدون استفاده از using پیاده سازی کنید باید چیزی شبیه به تیکه کد زیر بنویسید : FileStream FS = new FileStream("Test.txt", FileMode.Create); try { FS.WriteByte((byte)1); FS.WriteByte((byte)2); FS.WriteByte((byte)3); StreamWriter SW = new StreamWriter(FS); try { SW.WriteLine("some text."); } finally { if (SW != null) { ((IDisposable)SW).Dispose(); } } } finally { if (FS != null) { ((IDisposable)FS).Dispose(); } } همینطور که میبینید استفاده از using کد شما را راحتتر، خواناتر و کوتاه تر میکند. منبع : "C# 3.0 Cookbook™, Third Edition" (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) rtech2nd September 2008, 09:19 PMproperty چیست و چرا از آن استفاده می کنیم؟ یک property متشکل از 2 متود set,get است که برای دریافت و یا تخصیص مقادیر به متغیر ها استفاده می شوند .از معایب تعریف متغیرهای کلاس به صورت Public اینست که هر موجودی از بیرون کلاس می تواند دسترسی مستقیمی به آن داشته باشد و براحتی آن را دستکاری کند و در ضمن هیچ گونه عمل validation بر روی مقادیر متغیر ها صورت نمیگیرد ,که این با اصول صحیح oop منافات دارد . دلایل استفاده از property به جای یک متغیر: 1-رعایت اصل encapsulation 2-امکان بازرسی و validation public class Circle { private double radius; public double Radius { get { return radius; } set { if (value>0 && value<50) radius = value; } } public double GetArea() { return radius * radius * 3.14; } } برای مطالعه بیشتر کاربران ثبت نام کرده قادر به مشاهده لینک می باشند******.com/ rtech2nd September 2008, 09:22 PMایندکسرها (Indexers) ایندکسرها نوعی از پراپرتیها هستند که به شما اجازه میدهند با اشیاء کلاس خود آرایه وار رفتار کنید. تعریف یک ایندکسر نیز مانند تعریف یک پراپرتی است و در حالت کلی داریم : <Modifier> <Return type> this[arguments] { get { } Set { } } برای مثال - با فرض داشتن کلاسی مانند : class Employee { private string[] name = new string[10]; public string this[int index] { get { return name[index]; } set { name[index] = value; } } } میتوان نوشت : Employee emp = new Employee(); emp[0] = "Joydip"; emp[1] = "Manashi"; emp[2] = "Jini"; نکته : + ایندکسرها حتما باید یک پارامتر داشته باشد. + ایندکسرها نمیتوانند استاتیک باشند (بعلت نیاز به this) rtech2nd September 2008, 09:26 PMبا استفاده از کلمه کلیدی params مانند نمونه زیر : public int Add(params int[] list) { int sum = 0; foreach (int i in list) sum += i; return sum; } حال میتونیم این متود را به این شکل صدا بزنیم : int ans1 = Add(1); int ans2 = Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); int ans3 = Add(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); int ans4 = Add(); نکته :‌ متود میتواند چندین پارامتر دیگر غیر از پارامتر از نوع params بپذیرد اما پارامتر params حتما باید آخرین پارامتر باشد. مانند : public void AddAndPrint(string str, params int[] list) { int sum = 0; foreach (int i in list) sum += i; Console.WriteLine(str + sum); } منبع : کاربران ثبت نام کرده قادر به مشاهده لینک می باشند (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند) rtech2nd September 2008, 09:26 PMتعریف عملگر های سفارشی class MyClass { private int number ; public MyClass(int _number) { this.number = _number; } public static MyClass operator+ (MyClass c1, MyClass c2) { return new MyClass(c1.number + c2.number); } } تعریف یک Operator overloading همیشه باید بصورت Static و Public باشد و مقدار برگشتی آن نیز نمیتواند void باشد. rtech5th September 2008, 12:42 PMگرد کردن و رُند کردن یک مقدار اعشاری رُند کردن : int x = (int)Math.Round(2.5555); // x == 3 گرد کردن تا دو رقم اعشار : decimal x = Math.Round(2.5555, 2); // x == 2.56 rtech5th September 2008, 12:43 PMبدست آوردن قسمت صحیح یک عدد اعشاری decimal d = 123.234M; decimal i = Math.Truncate(d) rtech5th September 2008, 12:44 PMیافتن مقادیر ماکزیمم و مینیمم Primitive Type های عددی این مقادیر بصورت خواص درونکار وجود دارند. برای مثال : Int16.MaxValue; Int16.MinValue; Int64.MaxValue; Int64.MinValue; Double.MaxValue; Double.MinValue; ... rtech5th September 2008, 12:44 PMبه توان رساندن و جذر گرفتن double i = Math.Pow(4, 2); // = 16; double j = Math.Pow(4, .5); // = 2; پارامتر اول : عدد دلخواه پارامتر دوم : توان عدد (از اعداد بین 0 تا 1 برای جذر گرفتن استفاده کنید) rtech5th September 2008, 12:45 PMتبدیل درجه به رادیان و بلعکس public static double ConvertDegreesToRadians(double degrees) { return ((Math.PI / 180) * degrees); } public static double ConvertRadiansToDegrees(double radians) { return ((180 / Math.PI) * radians); } rtech5th September 2008, 12:46 PMتبدیل عدد و رشته به متناظر بولین آنها و بلعکس تبدیل یک متغیر بولین به نوع صحیح : bool flag = false; int i = (flag ? 1 : 0); تبدیل یک عدد صحیح به متناظر بولین آن : int i = 1; bool flag = (i == 1 ? true : false); تبدیل یک رشته به متناظر بولین آن : string str = "Yes"; bool flag = str.ToLower() == "yes" ? true : false; rtech5th September 2008, 12:47 PMتبدیل درجه حرارتها به یکدیگر (سلسیوس، فارنهایت، کلوین) public static double CelsiusToFahrenheit(double celsius) { return (1.8 * celsius) + 32; } public static double FahrenheitToCelsius(double fahrenheit) { return 1.8 * (fahrenheit - 32); } public static double CelsiusToKelvin(double celsius) { return celsius + 273; } public static double KelvinToCelsius(double kelvin) { return kelvin - 273; } public static double FahrenheitToKelvin(double fahrenheit) { return CelsiusToKelvin(FahrenheitToCelsius(fahrenheit)); } public static double KelvinToFahrenheit(double kelvin) { return CelsiusToFahrenheit(KelvinToCelsius(kelvin)); } rtech5th September 2008, 12:48 PMاستفاده از Place Holder ها در کار با رشته ها فرض کنیم که : int a = 3, b = 5; حال میتونیم به جای نوشتن : string result = a.ToString() + "+" + b.ToString() + "=" + (a + b).ToString(); بسادگی بنویسیم : string result = string.Format("{0}+{1}={2}", a, b, a + b); استفاده از Place Holder ها (حالت دوم) ضمن خوانایی بیشتر برنامه، معمولا کدنویسی کمتری نیز طلب میکند. rtech5th September 2008, 12:49 PMخوندن خط به خط یک رشته چند سطری کاربران ثبت نام کرده قادر به مشاهده لینک می باشند dooste man"; using (StringReader sr = new StringReader(s)) { while (sr.Peek() > 0) MessageBox.Show(sr.ReadLine()); }; rtech7th September 2008, 07:37 PMبرخی اعمال متدوال روی تاریخ میلادی // Create a TimeSpan representing 2.5 days. TimeSpan timespan1 = new TimeSpan(2, 12, 0, 0); // Create a TimeSpan representing 4.5 days. TimeSpan timespan2 = new TimeSpan(4, 12, 0, 0); // Create a TimeSpan representing 1 week. TimeSpan oneWeek = timespan1 + timespan2; // Create a DateTime with the current date and time. DateTime now = DateTime.Now; // Create a DateTime representing 1 week ago. DateTime past = now - oneWeek; // Create a DateTime representing 1 week in the future. DateTime future = now + oneWeek; مثال :‌ پیدا کردن اختلاف تعداد روزهای بین دو تاریخ : DateTime dateFrom = DateTime.Parse("10/10/2007"); DateTime dateTo = DateTime.Parse("11/12/2007"); TimeSpan ts = dateTo - dateFrom; int days = ts.Days; و یا : DateTime dtFirst = new DateTime(2007, 10, 10); DateTime dtSecond = new DateTime(2007, 11, 12); TimeSpan diffResult = dtSecond.Subtract(dtFirst); rtech7th September 2008, 07:37 PMدستیابی به تاریخ شمسی با استفاده از PersianCalender using System.Globalization; public string Miladi2Shamsi(DateTime _date) { PersianCalendar pc = new PersianCalendar(); StringBuilder sb = new StringBuilder(); sb.Append(pc.GetYear(_date).ToString("0000")); sb.Append("/"); sb.Append(pc.GetMonth(_date).ToString("00")); sb.Append("/"); sb.Append(pc.GetDayOfMonth(_date).ToString("00")); return sb.ToString(); } نحوه ی استفاده، برای مثال تاریخ امروز : string today = Miladi2Shamsi(DateTime.Now); خروجی این تابع رشته ای در قالب "YYYY:MM:DD" مانند : "1386/12/25" خواهد بود. rtech7th September 2008, 07:38 PMتبدیل رشته حاوی تاریخ شمسی به متناظر میلادی آن public DateTime Shamsi2Miladi(string _date) { int year = int.Parse(_date.Substring(0, 4)); int month = int.Parse(_date.Substring(5, 2)); int day = int.Parse(_date.Substring(8, 2)); PersianCalendar p = new PersianCalendar(); DateTime date = p.ToDateTime(year, month, day, 0, 0, 0, 0); return date; } ورودی این تابع رشته ای در قالب "YYYY:MM:DD" ؛ مانند : "1386/12/25" و یا "0087/01/01" باید باشد. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




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

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 878]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن