View Full Version : سوال: byval byref
aminvb
یک شنبه 03 مرداد 1389, 01:14 صبح
سلام
چرا توو بیشتر تعریفا Function از byval استفاده میشه نه byref ؟
byref پارامتر اجرایه من میخوام به تابع ورودی بدم که خروجی هایی رو بهم بده
اگه byref باشه تغییراته متغییر های توابع انجام میشه اما به برنامه اصلی بر نمی گرده
تغییری توو برنامه اصلی نداره
لطفا راهنمایی فرمایید
تشکر .
ebrahimv
یک شنبه 03 مرداد 1389, 02:16 صبح
Dim s As Integer = 1
Private Sub ss(ByVal a As Integer)
a += 1
End Sub
در بلا مقدار s=1 خواهد بود.
Dim s As Integer = 1
Private Sub ss(ByRef a As Integer)
a += 1
End Sub
در اين حالت مقدار s=2 خواهد بود.
hero4000
یک شنبه 03 مرداد 1389, 08:14 صبح
دوست عزيز اين S شما کجا داره تغيير ميکنه :متفکر: :کف:
ebrahimv
یک شنبه 03 مرداد 1389, 11:01 صبح
دوست عزيز اين S شما کجا داره تغيير ميکنه :متفکر: :کف:
ميتوني امتحان كني
و اينا از مقدمات هستن
hero4000
یک شنبه 03 مرداد 1389, 11:57 صبح
دوست عزيز درسته که بنده چيزي از برنامه نويسي نميدونم ولي اينقدر ميفهمم که شما بايد يک متغير رو يکجوري مقدار دهي بکني تا تغيير کنه
وقتي شما بر روي متغير S هيچ تغييري نميدي و حتي به پروسيجر هم نميفرستي چرا بايد تغيير کنه
لطفا کدتون رو مجدد بازنگري بفرمائيد
ebrahimv
یک شنبه 03 مرداد 1389, 12:52 عصر
دوست عزيز درسته که بنده چيزي از برنامه نويسي نميدونم ولي اينقدر ميفهمم که شما بايد يک متغير رو يکجوري مقدار دهي بکني تا تغيير کنه
وقتي شما بر روي متغير S هيچ تغييري نميدي و حتي به پروسيجر هم نميفرستي چرا بايد تغيير کنه
لطفا کدتون رو مجدد بازنگري بفرمائيد
حرف شما درست ولي درسته فقط فراخواني تابع مونده
براي Byref
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As Integer = 1
ByrefTest(s)
MsgBox(s)
End Sub
Private Sub ByrefTest(ByRef a As Integer)
a += 1
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.