مشاهده نسخه کامل
: مشکل با object ها
MohammadJavad.T
18-02-2008, 02:59
سلام
دوستان یه سوال تابلو داشتم که حسابی گیجم کرده:18: اگه جواب بدین یه دنیا ممنون میشم
خیلی راحت میتونم یه property ایجاد کنم و تو برنامم ازش استفاده کنم
ولی نمیدونم چه طور میشه کاری کرد که مثلا یه خاصیت به یه textbox یا label یا chekbox یا ... اضافه کرد
مثلا
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که test الان یه property که به شی text box اضافه شده
نمیدونم منظور من رو متوجه شدین یا نه اگه نشدین بگین بیشتر توضیح بدم
سلام
راه اصلی این کار وراثت است، به تاپیک زیر مراجعه کنید و کد سمپل را دانلود کنید، و ببینید چگونه خوصیت ها به کلاسس Button اضافه شده اند...
forum.p30world.com/showthread.php?t=195710&page=3
البته VS2008 قابلیت جدید با نام توابع Extension را معرفی کرده که همان توابع نوع friend موجود در ++C هستند. (قابلیت ساده و کوچک، ولی جالب)
این توابع بدون وراثت به یک کلاسس میچسبند (!) و فقط در پروژه های دات نت 3 و تحت VS2008 در دسترس هستند.
MohammadJavad.T
19-02-2008, 01:30
سلام استاد
ممنون از راهنمایت اون سورسی هم که گذاشته بودی خیلی چیزا ازش فهمیدم
فقط یه چند تا سوال دیگه دارم
Overridable چه وقتی استفاده میشه ممکن دربارش توضیح بدی همچنین Overrides و Protected
اگه یه توضیح بدی ممنون میشم
MohammadJavad.T
20-02-2008, 02:31
در مورد overrides یه چیزای فهمیدم
ولی overridable و protected چیزی دستگیرم نشد :41:
یه سوال دیگه هم داشتم که البته خیلی ابتدای دیگه به بزرگی خودتون عفو کنید اخه تازه کار با UC و کلاس
نویسی رو شروع کردم . وقتی ما از یه button به ارث میبریم رویداد های اونم میشه به ارث برد
یا اینکه باید رویداد ها رو نوشت ؟
سلام
بسیار خوشحالم که معنی Overrides را میدانید، این خیلی کمک میکند و کار نوشتاری را من را کم میکند.
Overrides فقط برای متدهایی در کلاسس مشتق شده قابل استفاده است که قبلاً در کلاسس پایه با Overridable تعریف شده باشند.
یعنی Overridable نوعی مجوز برای کلاسسهای مشتق شده است تا بتوانند متد را Override کنند، وگرنه شما حق Override متدها را در حالت پیشفرض ندارید!
کلمات حوزه دید
Private
کوچکترین حوزه دید، قابل رویت/دستکاری/فراخانی و... در کوچکترین محدوده که قالباً یک Class یا Structure است.
Protected
قابل رویت/دستکاری/فراخانی و... در کوچکترین محدوده و نیز کلاسسهای مشتق شده که قالباً یک Class یا Structure است.
Friend
قابل رویت/دستکاری/فراخانی و... در اسمبلی جاری (داخل خود exe یا dll برنامه)
Friend Protected
تلفیق friend و protected یعنی خود حوزه جاری + وراثت ها + کدهای داخل اسمبلی جاری
Public
قابل رویت/دستکاری/فراخانی و... در تمام نقاط و همه جا، حتی از خارج از اسمبلی جاری و از یک exe یا dll دیگر
در مورد ارث بری هم باید بگویم، همه داشته ها و نداشته های کلاسس پایه به ارث برده میشوند، بجز فقط و فقط سازنده ها(New یا وهله یا نمونه، ....)
وقتی دارید کلاسس ها New میکنید، قالباً چند پارامتر از شما شاید گرفته شود (که در مورد کنترلرهاییی مثل TextBox و Button و... اینطور نیست) این روال سازنده به ارث برده نمیشود و در صورت نیاز باید مجدداً تعریف شود، که البته دلیلش هم اگر کمی فکر کنید کاملاً عقلانی خواهد بود.
------------------------------------
در اصل هر جایی که شما میتوانید property و function و sub و event و... تعریف کنید، حتماً وراثتی از شی ای گرفته اید و در حال کد نویسی داخل بدنه یک نوع Class هستند (حتی Structure ها و Module ها هم نوعی کلاسس هستند ولی با وراثت اجباری و ثابت و غیر قابل تغییر).
در WinForm ها معمولاً وراثتی دارید از کلاسس Form و در WebForm ها معمولاً وراثتی دارید از کلاسس Page ، اگر کمی دقت کنید دستورات Inherits (یا : در #C) را میتوانید ببینید یا در vb.* یا در designer.vb.* ها ...
MohammadJavad.T
21-02-2008, 00:10
سلام دوست عزیز
ممنون از این که وقت گذاشتی و این همه تایپ کردی و این توضیح کامل رو دادی . نمیدونم چه طور ازت تشکر کنم
بازم ممنون.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.