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

نام تاپیک: ثبت مشخصات یک فرم در فرم دیگر

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #17

    نقل قول: ثبت مشخصات یک فرم در فرم دیگر

    نقل قول نوشته شده توسط hdv212 مشاهده تاپیک
    شما به من بگو آیا مایکروسافت که حکم ClassDesigner رو داشته برای برنامه نویسان، از این بابت نگرانی نداشته که DataSet.Tables رو در اختیار کاربران قرار بده ؟ چون ممکنه کسی myTable رو dispose کنه در حالی که توی همون فرم بهش نیاز داره!
    MyTable را شما ایجاد کرده اید. نه ماکروسافت..پس حق این را دارید که هر عمل مجازی که برای آن تعریف شده است انجام دهید..

    اما، Label ای که شما حق دسترسی کامل اون را به مصرف کننده کلاس دادید، جزء Class Creator می باشد.. یعنی Label جزئی از تعریف فرم1 شما می باشد.. پس نباید از بیرون، دسترسی های غیر مجاز به آن داشت..



    نمیدونم چرا شما گیر دادی که کسی dispose نکنه، اگر کسی بخواد کنترلی رو در فرم دیگه dispose کنه، مشکل اینه که هنوز مسلط به برنامه نویسی نیست، باید بره برنامه نویسی رو یاد بگیره، و گرنه هیچ کس کلاسهای داخلی یک کلاس بیرونی رو dispose نمیکنه (این یکی از نکات اصلی برنامه نویسی OOP هست)

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

    *********
    عمل Dispose فقط یک مثال بود.. صرفا بحث سر Dispose کردن یا نکردن نیست...
    وقتی شما دستزسی کامل می دهید، یعنی اینکه consumer شما هر عملی که بخواهد می تواند بر سر آبجکت شما بیاورد..

    گاهی مواقع، این دسترسی ها نه تنها بر روی خود آبجکت مذکور، بلکه بر روی دیگر آبجکت ها نیز می تواند تاثیر بگذارد و عملکرد آن ها را تحت تاثیر قرار دهد..

    نمونه برنامتون را با کمی تغییر آپلود می کنم که ببینید که چه مشکلاتی ممکن است پیش آید..
    پس از فشردن دکمه ببر روی فرم2، Button ای که بر روی فرم1 قرار دارد، دیگر قابل دسترسی نخواهد بود..
    و همه این مشکلات ، از آنجایی ناشی می شود که consumer کلاس شما، دسترسی به همه خواص آبجکت label را دارد.. و از همه مهمتر این که این نوع دسترسی ها کنترل شده نیست..


    شما دسترسی به خاصیت یک TextBox رو با به اشتراک گذاری پسورد یک سیستم مقایسه میکنید ؟!
    مشکل سر خاصیت Text و یا دیگر خواص نیبست... مشکل اینجاست که کلاس X اگر نیاز دارد که بتواند به خاصیت a از آبجکتی دسترسی پیدا کند، نباید این اجازه را داشته باشد که بتواند دیگر خواص اون آبجکت را تحت تاثیر رفتار خودش قرار دهد..
    فایل های ضمیمه فایل های ضمیمه

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


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

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