PDA

View Full Version : تابع در کلاس



scmorfi
یک شنبه 08 اسفند 1389, 14:38 عصر
با سلام
یه سئوال داشتم در مورد ساختار کلاسی که توش یک تابعه برگشتی باشه رو بدونم
خیلی اورژانسیه از دوستان مب خوام اگه می تونید بهم کمک کنید

ali_najari
یک شنبه 08 اسفند 1389, 16:22 عصر
دوست عزیز شما باید تابعت رو از نوع Public تعریف کنید سپس کلاس را در فرمتون معرفی کرده و از کدهای داخل آن استفاده کنید به عنوان مثلا فرض کنید شما یک کلاس دارید به اسم Class1 و در داخل آن یک تابع دارید که مثلا یک عدد را باز میگردونه حال میتونید کلاس را اینگونه تعریف کنید:


Public Class Class1
Public Function RandomNumber() as integer
Dim Rand As New Random
Return Rand.Next(1, 50)
End Function
End Class

و برای استفاده در فرم خواهیم داشت:


Public Class Form1
Dim MyRand as New Class1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Msgbox(MyRand.RandomNumber)
End Sub

End Class

scmorfi
یک شنبه 08 اسفند 1389, 16:43 عصر
خوب برنامه من اینجوره که می خوام چند تا داده رو برگردنه
یه جور ماژول در کلاس
می تونید اینجوری یه مثال بزنید؟

scmorfi
یک شنبه 08 اسفند 1389, 16:46 عصر
ببخشید متوجه شدم

scmorfi
یک شنبه 08 اسفند 1389, 16:55 عصر
یه مشکل دیگه اینکه چجوری به کلاس اطلاعات ارسال کنیم؟
اینکه گفید اطلاعاتی رو به فرم می فرسته من می خوام اطلاعاتو به کلاس بعد نتیجه به فرم بره

scmorfi
یک شنبه 08 اسفند 1389, 20:46 عصر
پس چرا کسی جواب نمیده؟ :ناراحت::افسرده:

ali_najari
سه شنبه 10 اسفند 1389, 01:58 صبح
برای نوشتن کلاس بصورت زیر میتونید عمل کنید:


Public Class Class1
Public Function RandomNumber(Byval X as integer,Byval Y as integer) as integer
Dim A,B As integer
A=X*2
B=Y^2
RandomNumber = A+B

Return RandomNumber
End Function
End Class


فراخوانی:


Public Class Form1
Dim MyRand as New Class1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Msgbox(MyRand.RandomNumber(12,5)
End Sub
End Class

omid-vbAuto
سه شنبه 10 اسفند 1389, 11:09 صبح
برای نوشتن کلاس بصورت زیر میتونید عمل کنید:


Public Class Class1
Public Function RandomNumber(Byval X as integer,Byval Y as integer) as integer
Dim A,B As integer
A=X*2
B=Y^2
RandomNumber = A+B

Return RandomNumber
End Function
End Class


فراخوانی:


Public Class Form1
Dim MyRand as New Class1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Msgbox(MyRand.RandomNumber(12,5)
End Sub
End Class

مهندس من در پروژه هام عبارت Return RandomNumber مربوط به اون تابع رو نمی نویسم و برنامه هم بدون مشکل کار میکنه.نوشتن یا ننوشتن این عبارت چه تاثیری می تواند داشته باشد؟

scmorfi
چهارشنبه 11 اسفند 1389, 09:46 صبح
داداش این که گفتی یه مقدار بر می گردونه .می خوام 2 مقدار x و y را برگردونه
این مثال شما یه مقدار بر می گردنه

omid-vbAuto
چهارشنبه 11 اسفند 1389, 13:50 عصر
داداش این که گفتی یه مقدار بر می گردونه .می خوام 2 مقدار x و y را برگردونه
این مثال شما یه مقدار بر می گردنه

می بایست مختصات x و y اتون رو در یک متغییر نقطه ذخیره کنید و این متغییر هم می تواند همات تابع شما باشد.

موفق باشید.

scmorfi
چهارشنبه 11 اسفند 1389, 15:14 عصر
من زیاد وارد نیستم به کار با کلاس
امکانش هست کد رو بنویسید؟

ali_najari
دوشنبه 16 اسفند 1389, 01:45 صبح
دوست عزیز این هم چیزی که شما خواسته بودید رو آماده کردم
فقط شرمنده دیر شد چون من یکم سرم شلوغ بود و نمیتونستم خیلی به سایت سر بزنم

تعریف کلاس:

PublicClass SampleClass
PublicStructure RandomNumber
Public X AsInteger
Public Y AsInteger
Public Z AsInteger
EndStructure
PublicFunction RandNumber(ByVal Min AsInteger, ByVal Max AsInteger) As RandomNumber
Dim N As RandomNumber
Randomize()
Dim Rand AsNew Random
N.X = Rand.Next(Min, Max)
N.Y = Rand.Next(Min, Max)
N.Z = Rand.Next(Min, Max)
Return N
EndFunction
EndClass


طریقه فراخوانی و استفاده:

Dim Sample AsNew SampleClass
Dim S = Sample.RandNumber(1, 8)
MsgBox(S.X & vbTab & S.Y & vbTab & S.Z)