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

نام تاپیک: تفاوت دو دستور تعریف یک متغیر

  1. #1

    تفاوت دو دستور تعریف یک متغیر

    سلام
    تفاوت این دو دستور در چیست وکاربرد کدام بهتراست
    1)
     private string NationalID;
    public string NationalId
    {
    get { return NationalID; }
    set { NationalID = value; }
    }

    2)
    public string NationalID { get; set; }

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: تفاوت دو دستور تعریف یک متغییر

    نقل قول نوشته شده توسط Iran58 مشاهده تاپیک
    سلام
    تفاوت این دو دستور در چیست وکاربرد کدام بهتراست
    1)
     private string NationalID;
    public string NationalId
    {
    get { return NationalID; }
    set { NationalID = value; }
    }

    2)
    public string NationalID { get; set; }
    سلام
    این دو تا دقیقاً یکی هستن. حالت دوم رو بهش Auto Property می‌گن و برای
    خلاصه شدن حالت اول به #C اضافه شد.

    صبا صبوحی

  3. #3
    کاربر دائمی آواتار winner1
    تاریخ عضویت
    تیر 1392
    محل زندگی
    خلخال
    پست
    738

    نقل قول: تفاوت دو دستور تعریف یک متغییر

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

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: تفاوت دو دستور تعریف یک متغییر

    نقل قول نوشته شده توسط winner1 مشاهده تاپیک
    ببین همیشه تو برنامه نویسی روش اول توصیه میشه چرا چون اصلا پراپرتی ها برای کنترل ورود و خروج مقادیر به فیلدهای کلاسمون هستن کاربردشون اینه
    سلام
    نه دوست من، حکم نادرست صادر نکن. این دو دقیقاً یکی هستن.
    اگه لازم باشه چیزی رو کنترل کنی، باید از روش اول استفاده کنی، در غیر این صورت همیشه Source کوتاه‌تر و ساده‌تر، خوانایی بیشتری داره.
    اگه تو getter یا setter نخواهیم کد خاصی بنویسیم، خیلی بهتره که از auto property استفاده بشه.
    حتا برای فقط خواندنی یا فقط نوشتی کردن یک Property هم می‌شه از auto property استفاده کرد.

    صبا صبوحی

  5. #5
    کاربر دائمی آواتار winner1
    تاریخ عضویت
    تیر 1392
    محل زندگی
    خلخال
    پست
    738

    نقل قول: تفاوت دو دستور تعریف یک متغییر

    نقل قول نوشته شده توسط SabaSabouhi مشاهده تاپیک
    سلام
    نه دوست من، حکم نادرست صادر نکن. این دو دقیقاً یکی هستن.
    اگه لازم باشه چیزی رو کنترل کنی، باید از روش اول استفاده کنی، در غیر این صورت همیشه Source کوتاه‌تر و ساده‌تر، خوانایی بیشتری داره.
    اگه تو getter یا setter نخواهیم کد خاصی بنویسیم، خیلی بهتره که از auto property استفاده بشه.
    حتا برای فقط خواندنی یا فقط نوشتی کردن یک Property هم می‌شه از auto property استفاده کرد.

    صبا صبوحی
    دوست من با این حساب هیچ فرقی با فیلد عمومی نداره منطقی که واسش وجود داره اینه

  6. #6
    کاربر دائمی آواتار sajadsobh
    تاریخ عضویت
    تیر 1390
    محل زندگی
    رشت
    سن
    37
    پست
    420

    نقل قول: تفاوت دو دستور تعریف یک متغییر

    نقل قول نوشته شده توسط Iran58 مشاهده تاپیک
    سلام
    تفاوت این دو دستور در چیست وکاربرد کدام بهتراست
    1)
     private string NationalID;
    public string NationalId
    {
    get { return NationalID; }
    set { NationalID = value; }
    }

    2)
    public string NationalID { get; set; }
    شاید از نظر کارایی یکی باشند ولی روش اول رو encapsulation میگند. یعنی تعریف متغیر های خصوصی و استفاده از اون ها فقط داخل کلاسی که خودتون ساختید. در اینصورت شما فقط اجازه میدید که از طریق متدها و پروپرتی ها به این متغیرها دسترسی داشته باشند.

  7. #7

    نقل قول: تفاوت دو دستور تعریف یک متغییر

    سلام

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


    این دو تا دقیقاً یکی هستن. حالت دوم رو بهش Auto Property می‌گن و برای
    خلاصه شدن حالت اول به #C اضافه شد.
    همونطور که جناب صبوحی فرمودند عملا این دو تفاوتی با هم ندارند ، بر اساس این مطلب شما وقتی یک Auto Property تعریف میکنید ، کامپایلر یک BackField بصورت خصوصی و بی نام برای دسترسی private در نظر میگیره.




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

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

  1. تفاوت بین دستور Case با تعریف فیلد Static درجدول
    نوشته شده توسط morteza271 در بخش T-SQL
    پاسخ: 3
    آخرین پست: پنج شنبه 06 مهر 1391, 15:00 عصر
  2. سوال: تفاوت تعریف دو متغیر دینامیک
    نوشته شده توسط <برنامه نویس> در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 9
    آخرین پست: یک شنبه 30 آبان 1389, 12:42 عصر
  3. تعریف آرایه متغیر
    نوشته شده توسط seyed_farid در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: سه شنبه 26 اردیبهشت 1385, 08:57 صبح
  4. تعریف یک متغیر
    نوشته شده توسط PrinceDotNet در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 09 اسفند 1384, 09:57 صبح
  5. تعریف یک متغیر عمومی
    نوشته شده توسط rainynight در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: دوشنبه 24 بهمن 1384, 12:47 عصر

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

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