PDA

View Full Version : آموزش: راهنمایی در باره Implements



hossein-khoshseyar
دوشنبه 02 آبان 1390, 12:24 عصر
دوستان اگه کسی راجع به Implements اطلاعاتی داره لطف کنه یه توضیحی بده و بگه که به چه درد می خوره
ممنون

hossein-khoshseyar
دوشنبه 02 آبان 1390, 23:45 عصر
خیلی ممنون از جواب های کامل و بی نقص شما

sina_saravi1
سه شنبه 03 آبان 1390, 05:17 صبح
دوستان اگه کسی راجع به Implements اطلاعاتی داره لطف کنه یه توضیحی بده و بگه که به چه درد می خوره
ممنون
سلام
یه چیزایی یادم اومد چون شک داشتم نگفتم
به خاطر اصرارت ( پست دوم ) میگم

این مربوط میشه به برنامه نویسی شی گرا (OOP)
که توسط این دستور که دقیقا شبیه دستور Inherits استفاده میشه ، میشه از کلاس های دیگه به عنوان اینتر فیس استفاده کرد.
یعنی برای ایجاد شی جدید میشه از چندین Implements و فقط یک Inherits استفاده کرد.

چیز دیگه ای یادم نمیاد

Mani_rf
سه شنبه 03 آبان 1390, 14:08 عصر
Implement زمانی استفاده میشه که می خواهید از روی یک Interface یک کلاس بسازید. بعد از ایجاد کلاس بعد از نام کلاس می نویسید Implement و به صورت خود کار برای شما آیتم هایی که در Interface تعریف کردید را به کلاس اضافه می کند.

hossein-khoshseyar
جمعه 13 آبان 1390, 17:07 عصر
دوستان خواهشا یه کم بیشتر توضیح بدید
یا ساده تر توضیح بدید که ما تازه کارا هم متوجه بشیم
منتظر توضیحات کاملتر شما هستم

Mani_rf
جمعه 13 آبان 1390, 18:27 عصر
دوستان خواهشا یه کم بیشتر توضیح بدید
یا ساده تر توضیح بدید که ما تازه کارا هم متوجه بشیم
منتظر توضیحات کاملتر شما هستم

آخه مسله اینجاست که این موضوع موضوع ساده ای نیست که بشه درباره اون ساده توضیح داد. ولی با این حال یک مثال :

یک پروژه جدید از نوع کلاس لایبرری بازمیکنیم.

77419

به اون یک Interface اضافه میکنیم.


77418

درون اینترفیس این کد ها را بنویسید :

Public Interface Interface1

Property CarName As String

Property Doors As Byte

Property MaxSpeed As Integer

ReadOnly Property CurrentSpeed

Sub [New]()

Sub Update()

Sub Delete()

Function Damages() As String

End Interface

در مرحله بعد وارد کلاسی که در ابتدا ساخته شده است شوید و در خط بعد از کد Public Class Class1 بنویسید :

Implements Interface1

یعنی به این صورت :

Public Class Class1
Implements Interface1

سپس Enter بزنید تا ببنید چه اتفاقی می افتد!

کد ها به این صورت در خواهند آمد :

Public Class Class1
Implements Interface1

Public Property CarName As String Implements Interface1.CarName
Get

End Get
Set(value As String)

End Set
End Property

Public ReadOnly Property CurrentSpeed As Object Implements Interface1.CurrentSpeed
Get

End Get
End Property

Public Function Damages() As String Implements Interface1.Damages

End Function

Public Sub Delete() Implements Interface1.Delete

End Sub

Public Property Doors As Byte Implements Interface1.Doors
Get

End Get
Set(value As Byte)

End Set
End Property

Public Property MaxSpeed As Integer Implements Interface1.MaxSpeed
Get

End Get
Set(value As Integer)

End Set
End Property

Public Sub [New]() Implements Interface1.New

End Sub

Public Sub Update() Implements Interface1.Update

End Sub
End Class


در این روش شما یک Interface ایجاد کرده اید و یک کلاس را از روی آن ایجاد می کنید. تمامی خاصیت ها و توابعی که در Interface تعریف کردی اید در کلاس ایجاد می شوند و به شما اجازه می دهند تا کد های مربوط به آن را بنویسید.
در رابطه با Interface ها و کاربرد آنها بحث گسترده ای وجود دارد که در صورت تمایل به استفاده از آنها با کمی جستجو می توانید مطالب بسیار زیادی پیدا کنید.

Mani_rf
جمعه 13 آبان 1390, 19:06 عصر
لازمه این نکته را هم اضافه کنم که وقی که نیاز است که یک شئی از نوع کلاسی که ساخته ایم ایجاد کنیم شی را از نوع Interface آن ایجاد می کنیم نه خود کلاس.
برای مثال اگر نام اینترفیس ICar باشد و نام کلاس Car باشد شی را به این صورت تعریف می کنیم :

Dim CarObject as New ICar

hossein-khoshseyar
جمعه 13 آبان 1390, 22:12 عصر
ممنون از پاسخ شما
این چیزی که شما گفتید شاید یکی از کاربردهای Implements باشه
اما اون چیزی که باعث شد من این تاپیک رو ایجاد کنم در واقع سئوال اصلی من این بود که توی یک سورسی دیدم که توی رویدادهای مربوط به یک کامپوننت در واقع توی اینتراپتاش
بعد از اینکه اسم تابع و آرگومانهای ورودیش نوشته شده به جای اینکه نوشته شده باشه هندل مثلا کلیک اون کامپوننت به جای هندل نوشته Implements
که من نمی فهمم این یعنی چی
و جالب اینه که وقتی Implements رو به هندل تغییر میدیم خطایی نمیده اما اون قطعه کد کار نمی کنه
اینطوری

Private Sub Server_OnListen(ByVal Err As Integer) Implements Server.OnListen

Mani_rf
شنبه 14 آبان 1390, 22:14 عصر
ممنون از پاسخ شما
این چیزی که شما گفتید شاید یکی از کاربردهای Implements باشه
اما اون چیزی که باعث شد من این تاپیک رو ایجاد کنم در واقع سئوال اصلی من این بود که توی یک سورسی دیدم که توی رویدادهای مربوط به یک کامپوننت در واقع توی اینتراپتاش
بعد از اینکه اسم تابع و آرگومانهای ورودیش نوشته شده به جای اینکه نوشته شده باشه هندل مثلا کلیک اون کامپوننت به جای هندل نوشته Implements
که من نمی فهمم این یعنی چی
و جالب اینه که وقتی Implements رو به هندل تغییر میدیم خطایی نمیده اما اون قطعه کد کار نمی کنه
اینطوری

Private Sub Server_OnListen(ByVal Err As Integer) Implements Server.OnListen


یک نگاهی به کدی که من برای تعریف کلاس در بالا نوشتم و کد هایی که خود IDE ایجاد کرده بی اندازی جواب این سوال را هم خواهی گرفت.