تبلیغات
تبلیغات متنی
آموزشگاه آرایشگری مردانه شفیع رسالت
دکتر علی پرند فوق تخصص جراحی پلاستیک
بهترین دکتر پروتز سینه در تهران
محبوبترینها
چگونه اینورتر های صنعتی را عیب یابی و تعمیر کنیم؟
جاهای دیدنی قشم در شب که نباید از دست بدهید
سیگنال سهام چیست؟ مزایا و معایب استفاده از سیگنال خرید و فروش سهم
کاغذ دیواری از کجا بخرم؟ راهنمای جامع خرید کاغذ دیواری با کیفیت و قیمت مناسب
بهترین ماساژورهای برقی برای دیسک کمر در بازار ایران
بهترین ماساژورهای برقی برای دیسک کمر در بازار ایران
آفریقای جنوبی چگونه کشوری است؟
بهترین فروشگاه اینترنتی خرید کتاب زبان آلمانی: پیک زبان
با این روش ساده، فروش خود را چند برابر کنید (تستشده و 100٪ عملی)
سفر به بالی؛ جزیرهای که هرگز فراموش نخواهید کرد!
خصوصیات نگین و سنگ های قیمتی از نگاه اسلام
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1865445292


نکات برنامه نویسی در #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]
صفحات پیشنهادی
نکات برنامه نویسی در #c
نکات برنامه نویسی در #c-rtech2nd September 2008, 09:14 PMچگونه یک کلاس را مهر وموم کنیم؟ کافی است در اعلان کلاس و بعد از Access modifier از کلمه کلیدی ...
نکات برنامه نویسی در #c-rtech2nd September 2008, 09:14 PMچگونه یک کلاس را مهر وموم کنیم؟ کافی است در اعلان کلاس و بعد از Access modifier از کلمه کلیدی ...
نکات کلی برنامه نویسی و سرچی -
نکات کلی برنامه نویسی و سرچی saalek110 23 فروردين 1387, 05:15با سلام. این تاپیک را باز کردم تا خودم و دیگران(چه حرفه ای چه مبتدی یا متوسطه) تجارب کار عملی ...
نکات کلی برنامه نویسی و سرچی saalek110 23 فروردين 1387, 05:15با سلام. این تاپیک را باز کردم تا خودم و دیگران(چه حرفه ای چه مبتدی یا متوسطه) تجارب کار عملی ...
مشکل برنامه نویسی -
لطفا نكات برنامه نويسي را رعايت كرده و برنامهاتان ساختار يافته باشد. همچنين براي بدست اوردن تاريخ مي توانيد از كلاش Calendar استفاده كنيد سایت ما را در گوگل ...
لطفا نكات برنامه نويسي را رعايت كرده و برنامهاتان ساختار يافته باشد. همچنين براي بدست اوردن تاريخ مي توانيد از كلاش Calendar استفاده كنيد سایت ما را در گوگل ...
نکات کلیدی برنامه نویسی Php
13 ژوئن 2008 – نکات کلیدی برنامه نویسی Php-rtech13th June 2008, 09:15 PMیک زبان برنامه نویسی آنقدر گستردگی دارد که گمان نکنم کسی باشد بتواند ادعا ...
13 ژوئن 2008 – نکات کلیدی برنامه نویسی Php-rtech13th June 2008, 09:15 PMیک زبان برنامه نویسی آنقدر گستردگی دارد که گمان نکنم کسی باشد بتواند ادعا ...
نكات مفید كار در محیط دلفی
دوستان عزیز برنامه نویس ممکنه که شما مدتها با دلفی مشغول برنامه نویسی بوده باشید اما من یقین دارم که در این لیست نکات و روشهای جدیدی را خواهید آموخت. جستجو در ...
دوستان عزیز برنامه نویس ممکنه که شما مدتها با دلفی مشغول برنامه نویسی بوده باشید اما من یقین دارم که در این لیست نکات و روشهای جدیدی را خواهید آموخت. جستجو در ...
10 زبان برنامه نویسی که باید آموخت
10 زبان برنامه نویسی که باید آموخت نويسنده: سید احسان شریعتی سایت eWeek با ... 13 ژوئن 2008 – نکات کلیدی برنامه نویسی Php-rtech13th June 2008, 09:15 ...
10 زبان برنامه نویسی که باید آموخت نويسنده: سید احسان شریعتی سایت eWeek با ... 13 ژوئن 2008 – نکات کلیدی برنامه نویسی Php-rtech13th June 2008, 09:15 ...
برنامه نویسی و طراحی از راه دور -
نکات کلی برنامه نویسی و سرچی saalek110 23 فروردين 1387, 05:15با سلام. ... ولی هر کس می تواند راه دیگران را امتحان کند و اگر چیز خوبی بود جایگزین روش خود کند ...
نکات کلی برنامه نویسی و سرچی saalek110 23 فروردين 1387, 05:15با سلام. ... ولی هر کس می تواند راه دیگران را امتحان کند و اگر چیز خوبی بود جایگزین روش خود کند ...
بهترین متد در برنامه نویسی php -
بهترین متد در برنامه نویسی php --بهترین متد در برنامه نویسی php Ocarina 23 ... 13 ژوئن 2008 – نکات کلیدی برنامه نویسی Php-rtech13th June 2008, 09:15 ...
بهترین متد در برنامه نویسی php --بهترین متد در برنامه نویسی php Ocarina 23 ... 13 ژوئن 2008 – نکات کلیدی برنامه نویسی Php-rtech13th June 2008, 09:15 ...
دانلود کتاب الکترونیکی برنامه نویسی سی پلاس پلاس برای ...
این کتاب شامل 24 فصل میباشد که میتوان به موارد زیر اشاره کرد :- مفاهیم مقدماتی و پایه ای ( تاریخچه, انواع زبان های برنامه نویسی , نکات کلید در برنامه نویسی و.
این کتاب شامل 24 فصل میباشد که میتوان به موارد زیر اشاره کرد :- مفاهیم مقدماتی و پایه ای ( تاریخچه, انواع زبان های برنامه نویسی , نکات کلید در برنامه نویسی و.
دانلود کتاب الکترونیکی فارسی آموزش برنامه نویسی سی ...
دانلود کتاب الکترونیکی فارسی آموزش برنامه نویسی سی پلاس پلاس c++ cpp- یکی ... مفاهیم مقدماتی و پایه ای ( تاریخچه, انواع زبان های برنامه نویسی , نکات کلید در ...
دانلود کتاب الکترونیکی فارسی آموزش برنامه نویسی سی پلاس پلاس c++ cpp- یکی ... مفاهیم مقدماتی و پایه ای ( تاریخچه, انواع زبان های برنامه نویسی , نکات کلید در ...
-
گوناگون
پربازدیدترینها