چرا دورآموز؟
دورآموز با افتخار هنرجویان مستعد و جویای کار را به مدیران شرکت ها معرفی می کند

کلاس ها در سی شارپ
کلاس یک کلاس مانند نقشه ای کامل از یک شی مشخص است. در جهان واقعی هر شی ایی دارای یک سری خصوصیات مانند رنگ ، شکل و نوع عملکرد است. برای مثال شما یک اتومبیل فراری را درنظر بگیرید. فراری یک شی از نوع اتومبیل است و اتومبیل در اینجا نقش کلاس را برای ما بازی میکند. یک کلاس اتومبیل میتواند دارای خصوصیات معینی مانند سرعت ، رنگ و شکل باشد.

کلاس
یک کلاس مانند نقشه ای کامل از یک شی مشخص است. در جهان واقعی هر شی ایی دارای یک سری خصوصیات مانند رنگ ، شکل و نوع عملکرد است. برای مثال شما یک اتومبیل فراری را درنظر بگیرید. فراری یک شی از نوع اتومبیل است و اتومبیل در اینجا نقش کلاس را برای ما بازی میکند. یک کلاس اتومبیل میتواند دارای خصوصیات معینی مانند سرعت ، رنگ و شکل باشد.
بنابراین هر شرکت خودرو سازی که یک اتومبیل را با ویژگی های مورد نظرش تولید کند، شی ایی از یک اتومبیل را ساخته است. با این اوصاف اتومبیل های فراری ، لامبورگینی و کادیلاک همگی شی ایی از کلاس اتومبیل هستند.
در دنیای برنامه نویسی شی گرا ، یک کلاس دارای تعدادی مشخص فیلد ، صفت ، رویداد و متد است. یک کلاس انواع داده و عملکرد هایی که اشیا دارند را مشخص میکند. در یک کلاس میتوانید نوع مورد نظر خود را از طریق گروه بندی متغیر ها و دیگر انواع ایجاد کنید.
تعریف کلاس (class)
در زبان برنامه نویسی #C(سی شارپ) یک کلاس میتواند با استفاده از کلمه ی رزرو شده ی class
تعریف شود :
public class Customer
{
//Fields, properties, methods and events go here...
}
در نمونه مثال فوق قبل از کلمه ی class از کلمات رزرو شده ی سطوح دسترسی استفاده شده است. و چون در این مورد از کلمه ی public استفاده شده ، هر کسی میتواند شی ایی از این کلاس را ایجاد کند. به دنبال کلمه ی class نام دلخواه کلاس (Customer) قرار گرفته است. باقی مانده ی تعریف یک کلاس بدنه ی آن است که داده ها و رفتار های کلاس در آن تعریف میشود. فیلد ها ، صفات ، متد ها و رویداد ها در مجموع اعضای کلاس را تشکیل میدهند.
ایجاد شی ایی از یک کلاس
اگرچه یک شی (object) و کلاس در مواقعی به عنوان جایگزینی برای هم دیگر استفاده میشوند ، در واقع آنها دو چیز متفاوت هستند. یک کلاس نوع یک شی را مشخص میکند. گاهی اوقات از شی به عنوان نمونه ایی از یک کلاس یاد میشود. اشیا میتوانند با استفاده از کلمه ی رزرو شده ی new که به دنبال آن نام کلاس می آید تعریف شوند :
Customer object1 = new Customer();
قتی نمونه ای از یک کلاس ایجاد میشود ، ارجاع آن به یک شی توسط برنامه نویس انجام میشود. در نمونه مثال قبل object1 با مقداردهی به شی ایی از نوع customer ارجاع پیدا کرده است.
بررسی یک نمونه مثال از کلاس
در زیر نمونه مثالی آورده شده است که اعضای کلاس در آن مشخص شده اند :
public class MyClass
{
public string myField = string.Empty;
public MyClass()
{
}
public void MyMethod(int parameter1, string parameter2)
{
Console.WriteLine("First Parameter {0}, second parameter {1}",
parameter1, parameter2);
}
public int MyAutoImplementedProperty { get; set; }
private int myPropertyVar;
public int MyProperty
{
get { return myPropertyVar; }
set { myPropertyVar = value; }
}
}
در نمونه مثال بالا کلاسی به نام MyClass
ایجاد شده است که دارای فیلد ، صفت و متد است.
قسمت های مهمی که در نمونه کد بالا آمده است در شکل زیر مشخص شده اند :
در زیر به طور جداگانه به بررسی هر کدام از این قسمت های مهم خواهیم پرداخت.
سطح دسترسی (Access Modifiers)
سطوح دسترسی کلمات رزرو شده ای هستند که بر روی اعلان یک کلاس ، متد ، صفت ، فیلد و دیگر اعضای یک کلاس میتوانند اعمال شوند.
کلمات رزرو شده برای سطوح دسترسی در زبان سی شارپ عبارت اند از :
public
private
protected
internal
این کلمات، چگونگی و سطح دسترسی یک کلاس و یا اعضای آن را در برنامه مشخص میکنند.
فیلد (Field)
متغیری که در سطح یک کلاس تعریف میشود فیلد نامیده میشود. فیلد ها میتوانند مقادیری از یک نوع مشخص را در خود نگه دارند. عموما فیلد ها در کلاس دارای سطح دسترسی private
(فقط قابل دسترسی در محدوده ی همان کلاس ) هستند و در صفت ها (property) استفاده میشوند.
سازنده (Constructor)
یک کلاس میتواند دارای سازنده های پارامتر دار و یا بدون پارامتر باشد. سازنده ها در هنگام تعریف یک شی از یک کلاس فراخوانی میشوند. سازنده ها به وسیله ی یک کلمه ی سطح دسترسی و کلمه ای که همنام با نام کلاس باشند تعریف میشوند :
class MyClass
{
public MyClass()
{
}
}
متد (Method)
یک متد در زبان برنامه نویسی سی شارپ میتواند به شکل الگوی زیر تعریف شود :
{access modifier} {return type} MethodName({parameterType parameterName})
public void MyMethod(int parameter1, string parameter2)
{
// write your method code here..
}
صفت (Property)
یک صفت میتواند با استفاده از کلمات رزرو شده ی get
و set
مانند نمونه کد زیر ایجاد شود :
private int _myPropertyVar;
public int MyProperty
{
get { return _myPropertyVar; }
set { _myPropertyVar = value; }
}
دقت داشته باشید که در یک صفت از یک فیلد استفاده میشود. در نمونه مثال بالا با توجه به تعریف صفت MyProperty
، هر گاه بخواهیم مقدار این صفت را بدست آوریم مقدار فیلد myPropertyVar_
به ما نشان داده میشود و هرگاه این صفت را مقدار دهی کنیم این مقدار در فیلد myPropertyVar_
قرار میگیرد.
عموما صفات در زبان #C دارای سطح دسترسی public
(قابل دسترسی در خارج از محدوده ی کلاس) هستند. به عبارت دیگر فیلد myPropertyVar_
در خارج از کلاس به طور غیر مستقیم از طریق صفت MyProperty
قابل دسترسی است.
در نمونه مثال زیر در هنگام خوانده شدن مقدار صفت، همیشه نیمی از فیلد مورد نظر، نشان داده میشود و در هنگام مقدار دهی نیز مقادیر بزرگتر از 100 در فیلد مربوطه قرار نمیگیرد.
private int _myPropertyVar;
public int MyProperty
{
get {
return _myPropertyVar / 2;
}
set {
if (value > 100)
_myPropertyVar = 100;
else
_myPropertyVar = value; ;
}
}
صفات Auto-implemented
از زمان انتشار #C نسخه 3.0 تعاریف صفات ساده تر شد. این برای زمانی است که نیاز به اعمال منطق خاصی در صفت خود نداریم.
نمونه مثال زیر یک صفت Auto-implemented را نشان میدهد :
public int MyAutoImplementedProperty { get; set; }
دقت داشته باشید که هیچ فیلدی برای این صفت تعریف نشده است. یک فیلد به صورت ضمنی بعدا توسط کامپایلر ایجاد شده و این نوع صفات را مدیریت میکند.
با صفات Auto-implemented میتوان همانند یک صفت معمولی رفتار کرد و تا زمانی که منطقی نباشد تفاوتی با دیگر صفات ندارد.
فضای نام (Namespace)
یک فضای نام مکانی برای قرار گیری کلاس ها و یا مجموعه ای از فضای نام هاست. فضای نام را میتوان نام منحصر به فردی دانست که کلاس های داخل خود را از دیگر کلاس ها متمایز میکند. در زبان #C ، فضای نام میتواند با استفاده از کلمه ی رزرو شده ی namespace
تعریف شود :
namespace CSharpTutorials
{
class MyClass
{
}
}
در نمونه مثال بالا نام کامل کلاس MyClass به این شکل است : CSharpTutorials.MyClass.
یک فضای نام میتواند دیگر فضای نام ها را در خود نگه دارد. فضای نام های داخلی در هنگام دسترسی با کارکتر نقطه (.) مشخص میشوند.
namespace CSharpTutorials.Examples
{
class MyClassExample
{
}
}
در نمونه مثال بالا نام کامل کلاس MyClassExample به این شکل است : CSharpTutorials.Example.MyClassExample

روژان خالدی
برنامه نویس زبان c# و vb و علاقه مند به زبان های delphi وvb.net و c و vb وxamarin و java و seo و photoshop
روژان خالدی با افتخار از هنرجویان مدرسه آنلاین دورآموز می باشد.
این نوشته بر اساس تحقیقات و مطالب فراگرفته شده در در جلسات آموزشی تهیه شده است
پرسش و پاسخ
-
آزاده
بسیار مفید و آموزنده. ممنون
-
آزاده
بسیار عالی و مفید
-
اسلامی
خیلی خوب بود....
-
فریبا دقیق
ممنون خیلی مفید بود موفق باشی
-
ارام
عالیییی
-
علی
ممنون از شما
نوشته های دیگر این نویسنده

شروع کار با HTML
HTML می تواند توسط ویرایشگرهای مختلفی مثل Dreamweaver و Visual Studio نگارش و ویرایش شود. اما در این خود آموز ما به ویرایشگر ساده متنی (مثل Notepad) برای نگارش HTML نیاز داریم. ما بر این عقیده ایم که استفاده از یک ویرایشگر ساده متنی بهترین راه برای یادگیری HTML است.
روژان خالدی
1537
کلاس ها در سی شارپ
کلاس یک کلاس مانند نقشه ای کامل از یک شی مشخص است. در جهان واقعی هر شی ایی دارای یک سری خصوصیات مانند رنگ ، شکل و نوع عملکرد است. برای مثال شما یک اتومبیل فراری را درنظر بگیرید. فراری یک شی از نوع اتومبیل است و اتومبیل در اینجا نقش کلاس را برای ما بازی میکند. یک کلاس اتومبیل میتواند دارای خصوصیات معینی مانند سرعت ، رنگ و شکل باشد.