نمایش نتایج 1 تا 7 از 7

نام تاپیک: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1392
    محل زندگی
    تهران
    سن
    34
    پست
    49

    چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    زمانی که جدول های دیتابیس خودمون رو توی سی شارپ به کلاس تبدیل میکنیم به ازای هر فیلد توی دیتابیس متغیر با نوع مشخص ایجاد می کنیم.درسته؟
    حالا من دیدم یه سریا میان علاوه بر اینکه متغیر تعریف میکنن یک سری Proprty هم تعریف میکنن به این صورت

    string _title;


    یعنی اول متغیر تعریف میکنن بعدش زیرش اینو مینوسین

     public string Title
    {
    get { return _title; }
    set { _title = value; }
    }


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

  2. #2
    کاربر دائمی آواتار Hadi-Hashemi
    تاریخ عضویت
    آبان 1388
    محل زندگی
    استانبول
    سن
    40
    پست
    176

    نقل قول: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    متغییر رو بصورت Private تعریف میکنن و برای درسترسی بهش از متدهایی که بهش Property میگن استفاده میکنن. Property ها بصورت Public تعریف میشن.

    مثلا بعضی وقتها اگه قرار باشه برای متغییری محدوده ایجاد کنیم (مثلا فقط اعداد 0 تا 20) مجبور به استفاده از این روش هستیم.

    کلا دسترسی به متغییر باید محدود باشه و باید بجای اینکه همه به متغییر دسترسی داشته باشن بهتره به Property اون دسترسی داشته باشن.



    اینا چیزایی بود که من میدونستم - دوستان میان و تکمیلش میکنن

  3. #3
    کاربر دائمی آواتار systam
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    مشهد (امام رضا (ع))
    پست
    973

    نقل قول: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    سلام
    بعد کجا ها کارایی داره

  4. #4
    کاربر دائمی آواتار amirali0079
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    تهران
    پست
    220

    نقل قول: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    مثلا یه کلاس مینویسی برای ماشین
    یه ماشین رنگ داره
    اسم داره
    حد اکثر سرعت داره
    تعدادی در هم داره (از 2 تا 6 در)
    قطعا نمیخوای یکی که با کلاس کار میکنه تعداد در رو 2753 تا وارد کنه چون همچین ماشینی وجود نداره
    برای هیمن از Getو Set استفاده میکنی تا چک کنی تعداد در بین 2 تا 6 در هست نه بیشتر

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1392
    محل زندگی
    تهران
    سن
    34
    پست
    49

    نقل قول: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    نقل قول نوشته شده توسط Hadi-Hashemi مشاهده تاپیک
    متغییر رو بصورت Private تعریف میکنن و برای درسترسی بهش از متدهایی که بهش Property میگن استفاده میکنن. Property ها بصورت Public تعریف میشن.

    مثلا بعضی وقتها اگه قرار باشه برای متغییری محدوده ایجاد کنیم (مثلا فقط اعداد 0 تا 20) مجبور به استفاده از این روش هستیم.

    کلا دسترسی به متغییر باید محدود باشه و باید بجای اینکه همه به متغییر دسترسی داشته باشن بهتره به Property اون دسترسی داشته باشن.
    اینا چیزایی بود که من میدونستم - دوستان میان و تکمیلش میکنن
    خوب متغیر هم میشه Public تعریف کرد و بهش دسترسی داشت
    حالا اون بحث محدوده درسته ولی به جز اون؟ یعنی اگه محدوده نذاریم میشه property تعریف نکنیم؟

    چرا میگین دسترسی به متغیر محدود باشه؟ دلیلش؟

  6. #6

    نقل قول: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    سلام

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

    مثلا در نظر بگیرید ، کلاسی می نویسید که مقدار X رو از طریق یک پراپرتی میگیره و با پردازش هایی ، مقدار خروجی پراپرتی دیگری در آن کلاس Y خواهد شد و استفاده کننده از این کلاس نباید مجاز به تغییر مقدار خروجی باشد. طبیعتا با Public Variable نمیتونید ساختار مورد نیاز رو پیاده سازی کنید ، اما با پراپرتی ها و با استفاده از Get به تنهایی ، خروجی Read only خواهید داشت.

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

    نهایتا برای اطلاعات بیشتر و کاملتر ، رجوع کنید به اصول شر گرایی (مفهوم کپسوله سازی - encapsulation)




    موفق باشید.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  7. #7

    نقل قول: چرا باید از get , set در پروژه های خودمون استفاده کنیم؟

    یک سوال برام پیش اومد تو یک برنامه کوچک اصول کپسوله سازی را رعایت نکردیم ولی تو حالت Dibug درست کار میکنه ولی تو حالتRelease خطا می دهد ایا ممکن به این اصول کپسوله سازی که رعایت نکردیم گیر داده باشه؟؟

تاپیک های مشابه

  1. چرا آیتم Add web service از پروژه های VC در نسخه 2008 به بعد حذف شده؟
    نوشته شده توسط zoncpp در بخش WCF , Web Services , .Net Remoting
    پاسخ: 0
    آخرین پست: سه شنبه 14 بهمن 1393, 09:27 صبح
  2. سوال: آیا میتوان از wpf در پروژه های بزرگ استفاده کرد
    نوشته شده توسط amir3321 در بخش WPF
    پاسخ: 9
    آخرین پست: شنبه 20 مهر 1392, 13:44 عصر
  3. سوال: چطور میشه از یک کلاس در پروژه های دیگر استفاده کرد؟؟
    نوشته شده توسط oliya24 در بخش C#‎‎
    پاسخ: 10
    آخرین پست: شنبه 15 تیر 1392, 00:18 صبح
  4. چرا باید پسورد را هش شده در دیتا بیس ذخیره کنیم؟
    نوشته شده توسط masud8002k در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: جمعه 06 مرداد 1391, 18:57 عصر
  5. پاسخ: 11
    آخرین پست: چهارشنبه 16 اسفند 1385, 12:59 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •