توابع set و get در سی شارپ + مفهوم پراپرتی و فیلد در سی شارپ

ارسال شده توسط: حسین درویشی Comments: 0

توابع set و get در سی شارپ + مفهوم پراپرتی و فیلد در سی شارپ

تعریف فیلدها در داخل کلاس در سی شارپ بصورت public کار اشتباهی است. این کار از این جهت اشتباه است که برنامه نویس نمی تواند مقادیر ورودی را بدرستی کنترل کند. پس فیلدها را باید بصورت private تعریف کنیم. و برای بدست آوردن مقادیر و اختصاص مقادیر به آنها از توابع set و get در سی شارپ استفاده می کنیم.

مفهوم پراپرتی و فیلد

گفتیم فیلدهایی که داخل کلاس ها تعریف می شوند باید بصورت private باشند. (منظور از فیلد متغیرهایی است که در داخل کلاس تعریف می شوند).

پس چگونه به مقادیر آنها دسترسی داشته باشیم. یا یک مقدار به آنها اختصاص دهیم؟ برای چنین منظوری باید از property استفاده کنیم.

پراپرتی در سی شارپ برای اختصاص یک مقدار به فیلد های private کاربرد دارند. همچنین این امکان را به ما می دهند تا بتوانیم به مقادیر آنها دسترسی داشته باشیم.

توابع set و get در سی شارپ

get و set داخل پراپرتی ها مورد استفاده قرار می گیرند.

تعریف پراپرتی بدین صورت است که ابتدا یک پراپرتی برای فیلد مورد نظر بصورت public تعریف می کنیم. نام پراپرتی باید متفاوت تر از نام فیلد باشد، بطوری که براحتی بتوان پراپرتی ها را تشخیص داد که مربوط به کدام فیلد می باشند.

برای مثال کلاس زیر را در نظر بگیرید که دارای دو فیلد نام و فامیلی بصورت private می باشد.

    class Docrors
{
private string name;
private string family;
}

حال برای تخصیص مقدار به این دو فیلد باید از set استفاده کنیم و سپس برای بدست آوردن مقدار آنها از get استفاده می کنیم.


بیشتر بخوانید: کلمه کلیدی virtual در سی شارپ


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

    class Docrors
{
private string name;
private string family;
public string _name
{
set { name = value; }
get { return name; }
}
public string _family
{
set { family = value; }
get { return family; }
}
}

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

اختصاص یک مقدار به فیلد name:

            Docrors drr = new Docrors();
drr._name = "hossein";

حال مقدار متغیر name_ به متغیر name اختصاص داده شده است.

و برای بدست آوردن مقدار متغیر name باید بصورت زیر عمل کنید:

            Docrors drr = new Docrors();
string name = drr._name;

نکته: اگر بخواهیم فیلد مورد نظر رو فقط خواندنی تعریف کنیم، باید از get استفاده کنیم.

این موارد در مباحث شی گرایی بسیار مطرح است.

برای امتیاز به این نوشته کلیک کنید!
[کل: 6 میانگین: 3.7]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *