دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

Inheritance : ارث بری

در سی شارپ می توان فیلدها یا پروپرتی ها و متدها را از یک کلاس دیگر نیز به ارث برد . به این رفتار (Inheritance) یا ارث بری می گویند در مفهوم "ارث بری" با دودسته مواجه می شویم .

دسته اول کلاس های پایه یا والد که به (Base Class) یا (Parent) نام گذاری شده اند: کلاس های دیگر از این نوع کلاس ارث می برند.

دسته دوم کلاس های نشأت گرفته شده یا فرزند که به (Derived Class) یا (child) نام گذاری شده اند: این نوع کلاس ها از کلاس نوع اول ارث می برد. برای ارث بری از یک کلاس از علامت (:) استفاده می کنیم.

در مثال پایین کلاس "ماشین" (Car) تمام فیلدها و متدها را از کلاس "وسیله نقلیه" (Vehicle) ارث می برد.

 

class Vehicle // base class (parent)

{

public string brand = "Ford"; // Vehicle field

public void honk() // Vehicle method

{

Console.WriteLine("Tuut, tuut!");

}

}

 

class Car : Vehicle // derived class (child)

{

public string modelName = "Mustang"; // Car field

}

 

class Program

{

static void Main(string[] args)

{

ساخت یک شی از کلاس car //

Car myCar = new Car();

صدا زدن متد هونک از کلاس ویسل بوسیله شی یا نمونه ای از کلاس car //

myCar.honk();

نمایش محتوای فیلد brand (از کلاس ویسل)و محتوای (modelName) از کلاس Car //

Console.WriteLine(myCar.brand + " " + myCar.modelName);

}

}

 

استفاده از ارث بری بخاطر استفاده مجدد از فیلدها و متدهایی است که ما قبلا در کلاس های دیگر نوشته ایم.

اگر ما نخواهیم کلاس های دیگر از یک کلاس ما ارث بری داشته باشند ما باید کلاسمان را بصورت مهر و موم شده (sealed) اعلان کنیم .

اگر کسی سعی کند از یک کلاس (sealed) ارث بری داشته باشد با پیام خطا مواجه می شود.

در مثال پایین کلاس (Car) نمی تواند از کلاس (Vehicle) ارث بری داشته باشد. و در صورت انجام این کار با پیام خطا مواجه می شود

sealed class Vehicle 
{
  ...
}
 
class Car : Vehicle 
{
  ...
}

مفهوم overloading به زبان ساده در برنامه نویسی

مفهوم overloading به زبان ساده در برنامه نویسی :

گاهی اوقات ممکن است شما بخواهید متدی با یک نام منحصر به فرد داشته باشد که با آن ، بر روی دو نوع داده یک عملیات مشابه انجام دهید (مثلا عملیات جمع) . همانطور که می دانید به دلیل متفاوت بودن نوع داده ها اینکار ممکن نیست . و بطور معمول ما سراغ دو متد با نام های متفاوت می رویم . شبیه آنچه در پایین می بینید .

static int PlusMethodInt(int x, int y)

{

  return x + y;

}

 

static double PlusMethodDouble(double x, double y)

{

  return x + y;

}

همانطور که می بینید ما از دو متد با نام های متفاوت استفاده می کنیم که اندکی ناخوشآیند است .ولی می توان کاری کرد که به هدفمان یک قدم نزدیکتر شویم و آن استفاده از overloading است overloading به این صورت است که شما در واقع دو متد را با یک نام تعریف می کنید ولی تفاوت این دو متد در نوع پارامترها و آرگومان های آنهاست. شبیه آنچه در پایین می بینید

 static int PlusMethod(int x, int y)

{

return x + y;

}

 

static double PlusMethod(double x, double y)

{

return x + y;

}

 

با این کار در واقع ما با استفاده از یک نام مشترک اعدادی از نوع (int) را با همدیگر ، و همچنین اعدادی از نوع (double) را نیز با همدیگر جمع می کنیم و نیازی به استفاده از دو اسم متفاوت نداریم.

 

اعلان یک آرایه با تعداد اعضاء نا معین

هر گاه بخواهیم یک ارایه بسازیم ولی از تعداد عضوهای آن مطمئن نیستیم ، کافی است تا به روش زیر عمل کنیم.

ابتدا یک لیست با نام دلخواه و با همان نوعی که می خواهیم آرایه ما از همان نوع باشد می سازیم . مثلا می خواهیم آرایه ای از نوع عدد صحیح بسازیم پس باید یک لیست از نوع عدد صحیح به روش زیر بسازیم.

List<int> myInts = new List<int>();

پس از ساختن این لیست می توانیم بدون محدودیت هر تعداد که خواستیم برای آن عضو جدید تعریف کنیم.

شبیه کدهای مقابل :

            myInts.Add(5);
            myInts.Add(10);
            myInts.Add(11);
            myInts.Add(51);
            myInts.Add(30);
            myInts.Add(21);

با کدهای بالا شش عضو به این لیست افزوده شد

اکنون براحتی می توانید به روش زیر این لیست را به یک آرایه با نام دلخواه تبدیل کنید.

var MyArray = myInts.ToArray();

اکنون نیز مانند بالا می توانید با کمک یک فور لوپ تمام اعضاء آرایه جدید را فهرست کنید.

for (int i = 0; i < MyArray.Length; i++)
            {
                listBox1.Items.Add(MyArray[i]);
            }


اعلان یک آرایه

اعلان یک آرایه :

برای اعلان یک آرایه کافی است تا ابتدا نوع آرایه سپس دو علامت براکت پس از آن نامی دلخواه  علامت مساوی کلمه " نیو " و مجددا نوع آرایه و دو علامت براکت که در بینشان تعداد عضوهای آرایه نوشته میشود و در پایان علامت سمی کالن را بنویسید .

int [] num = new int[10] ;

اگر تا اینجای کد را بنویسید آرایه ساخته می شود و بطور پیش فرض بخاطر اینکه آرایه از نوع عدد صحیح می باشد ، هر ده عضو آن با مقدار صفر مقدار دهی می شوند.

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

           num[0] = 10;
           num[1] = 20;
           num[2] = 30;
           num[3] = 40;
           num[4] = 50;
           num[5] = 60;
           num[6] = 70;
           num[7] = 80;
           num[8] = 90;
           num[9] = 100;

اکنون تمام عضوها به ترتیب با مقدارهای 10 و 20 و 30 و ..... تا 100 مقدار دهی شده اند.

برای اینکه ما تمام اعضاء یک آرایه را دریافت کرده و آنها را در یک لیست باکس بنویسیم می توانیم از یک فور  لوپ شبیه آنچه در پایین نوشته استفاده کنیم.

 for (int i = 0; i < num.Length ; i++)
            {
              listBox1.Items.Add(num[i]);
            }