مطالب جدید برنامه نویسی
میتوان یک کلکسیون عمومی تعریف کرد که شامل هر نوع دادهای باشد. برای ایجاد یک کلکسیون عمومی از کلاس List<T> مربوط به فضای نامی System.Collections.Generics استفاده میشود. List<T> میتواند مجموعهای از اشیاء نوع T باشد. در نتیجه List<int> مجموعهای از مقادیر صحیح است. کلاس List<T> دارای متدهای AddRange()، Remove()، RemoveAt() و دیگر متدهایی است که […]
کد جنريک بايد براي هر نوع دادهای کار کند. يک عمل محاسباتي مانند عمل جمع که بر روي انواع صحيح انجام میشود، نمیتواند در صورتي که عملگر + سربارگذاري نشده باشد، بر روي ساير اشياء عمل کند. در نتيجه شما بايد براي يک متد يا کلاس جنريک محدوديت نوع (Type Constraints) در نظر بگيريد که […]
تعریف یک کلاس جنریک بسیار شبیه به تعریف یک متد جنریک است. کلاس جنریک دارای یک علامت بزرگتر و کوچکتر و یک نوع پارامتر خاص میباشد. برنامه زیر مثالی از یک کلاس جنریک میباشد : using System; public class GenericClass<T> { private T someField; public GenericClass(T someVariable) { someField = someVariable; } public T SomeProperty […]
اگر بخواهید چندین متد با عملکرد مشابه ایجاد کنید و فقط تفاوت آنها در نوع دادهای باشد که قبول میکنند (مثلاً یکی نوع int و دیگری نوع double را قبول کند) میتوان از متدهای جنریک برای صرفه جویی در کدنویسی استفاده کرد. ساختار عمومی یک متد جنریک به شکل زیر است : returnType methodName<type> (type […]
جنریک ها کلاسها، متدها یا رابطهایی هستند که بسته به نوع دادهای که به آنها اختصاص داده میشود رفتارشان را سازگار میکنند. به عنوان مثال میتوان یک متد جنریک تعریف کرد که هر نوع دادهای را قبول کند. همچنین میتوان یک متد ایجاد کرد که بسته به نوع دریافتی، مقادیری از انواع دادهای مانند int، […]
Iterator بلوک کدی است که، شامل همه مقادیری است که در یک حلقه foreach مورد استفاده قرار میگیرد. یک کلاس که نماینده یک کلکسیون است میتواند رابط System.Collections.IEnumerable را پیاده سازی کند. این رابط نیاز به پیاده سازی متد ()GetEnumerator دارد که یک رابط IEnumerator را بر میگرداند. رابط IEnumerator دارای خاصیت Current میباشد که […]
تمامی کلاسهایی که به نحوی شامل یک Collection هستند، این دو رابط رو پیاده سازی میکنند. وجود IEnumerable که توسط کلاسها پیاده سازی میشود به کلاس این امکان را میدهد که بصورت ضمنی و توکار بشود شیء را پیمایش کرد. دقیقاً به همین دلیل میتوان با استفاده از حلقه foreach یک آرایه را پیمایش کرد، […]
در درسهای قبلی دیدید که چگونه با استفاده از حلقه foreach عناصر یک آرایه را پیمایش میکردیم. در این درس میخواهیم کمی دقیقتر به قضیه آرایهها نگاه کنیم و ببینیم که چرا از آنها میتوانند توسط این حلقه مورد پردازش قرار گیرند. همچنین یاد میگیرید که چطور از این قابلیت در کلاسهایی که خودتان تعریف […]
از Hashtable زماني استفاده مي شود که بخواهيد اطلاعات را بر اساس کليد/ مقدار ذخيره کنيد. به عنوان مثال نام دانش آموز و نمره او در امتحان.
مي توان يک کلاس ايجاد کرد که از کلاس DictionaryBase مشتق شود. با اين روش شما مي توانيد به هر عنصر با استفاده از يک کليد (key) (که معمولا از نوع رشته است) دسترسي يابيد.
سي شارپ به شما توانايي ايجاد کلکسيون ي از کلاس ها را مي دهد. به عنوان مثال مي توان کلاسي ايجاد کرد که شامل چندين نمونه از کلاس هاي ديگر باشد.
از کنترل HelpProvider، برای نمایش راهنمای آنلاین استفاده میشود. اگر کاربر دکمه F1 را بفشارد، این کنترل، اطلاعات فایل راهنما را نشان میدهد. این کنترل دارای خاصیتی به نام HelpNameSpace میباشد. این خاصیت نام فایلی را مشخص میکند که باید با زدن دکمه F1 نمایش داده شود. فرض کنید که یک فایل با نام help.html […]
کلاس String میتواند با استفاده از عملگر + دو رشته را به هم متصل کند. اما این عملگر برای الحاق دو رشته مختلف کارا نیست. چون شیء رشته در دات نت تغییر ناپذیر است یعنی وقتی که یک متغیر از نوع رشته را تعریف میکنیم مقدار آن تغییر نمیکند. هنگامی که یک رشته را به […]
دات نت، جهت قالب بندی رشته و نحوه نمایش آنها در خروجی راههای متعددی در اختیار شما قرار میدهد. شما میتوانید با استفاده از ()String.Format رشتهها را به روشهای مختلفی قالب بندی کنید. string str1 = "This"; string str2 = "That"; string str3 = String.Format("{0} and {1}", "This", "That"); Console.WriteLine(str3); This and That ()String.Format متدی […]
میتوان بزرگي و کوچکي حروف يک رشته را تغيير داد. به عنوان مثال يک رشته که متشکل از حروف کوچک است را میتوان به حروف بزرگ تبديل کرد. با استفاده از متدهاي ()ToUpper و ()ToLower میتوان حروف رشته را بزرگ يا کوچک کرد. string lowercase = "abc"; string uppercase = "ABC"; Console.WriteLine("lowercase.ToUpper() = " + […]