ورود

View Full Version : تابع یا روال با پارامتر های متغیر



Veteran
یک شنبه 21 اسفند 1390, 09:28 صبح
سلام دوستان خوبین :لبخند:

دوستان میشه یک تابع با پارامتر های متغیر نوشت ؟ منظور اینکه ثابت نباشه
به کد زیر توجه کنید


Public Function Sum(Value As Integer)
Sum = Value + 1
End Function

اینجا یک پارامتر به اسم value داریم.
حالا اگر ما بخوایم به این یک پارامتر دیگه اضافه کنیم باید بیایم تابع رو ویراش کنیم

Public Function Sum(Value As Integer, Value1 As Integer)
Sum = Value + Value1
End Function

حالا راهی هست که بشه وقتی ما داریم فراخوانی میکنیم

MsgBox Sum(4, 1)

به دلخواه تعدادی پارامتر دیگه اضافه کنیم

MsgBox Sum(4, 1, 4, 6, 8)

بعد به صورت اتوماتیک به تابع اضافه بشن

Public Function Sum(Value As Integer, Value1 As Integer, Value2 As Integer, Value3 As Integer, Value4 As Integer)
Sum = Value + Value1
End Function

بعد تابع از همه پارامتر ها استفاده کنه ؟

Public Function Sum(Value As Integer, Value1 As Integer, Value2 As Integer, Value3 As Integer, Value4 As Integer)
Sum = Value + Value1 + Value2 + Value3 + Value4
End Function


تشکر :قلب:

setroyd
یک شنبه 21 اسفند 1390, 10:58 صبح
نه امکانش نیست.

Mr'Jamshidy
یک شنبه 21 اسفند 1390, 12:25 عصر
سلام دوستان خوبین :لبخند:

دوستان میشه یک تابع با پارامتر های متغیر نوشت ؟ منظور اینکه ثابت نباشه
به کد زیر توجه کنید


Public Function Sum(Value As Integer)
Sum = Value + 1
End Function

اینجا یک پارامتر به اسم value داریم.
حالا اگر ما بخوایم به این یک پارامتر دیگه اضافه کنیم باید بیایم تابع رو ویراش کنیم

Public Function Sum(Value As Integer, Value1 As Integer)
Sum = Value + Value1
End Function

حالا راهی هست که بشه وقتی ما داریم فراخوانی میکنیم

MsgBox Sum(4, 1)

به دلخواه تعدادی پارامتر دیگه اضافه کنیم

MsgBox Sum(4, 1, 4, 6, 8)

بعد به صورت اتوماتیک به تابع اضافه بشن

Public Function Sum(Value As Integer, Value1 As Integer, Value2 As Integer, Value3 As Integer, Value4 As Integer)
Sum = Value + Value1
End Function

بعد تابع از همه پارامتر ها استفاده کنه ؟

Public Function Sum(Value As Integer, Value1 As Integer, Value2 As Integer, Value3 As Integer, Value4 As Integer)
Sum = Value + Value1 + Value2 + Value3 + Value4
End Function


تشکر :قلب:

فقط در صورتی که پارامتر ها بصورت Optional تعریف بشه
ولی باید تعریف بشه

Veteran
یک شنبه 21 اسفند 1390, 12:29 عصر
فقط در صورتی که پارامتر ها بصورت Optional تعریف بشه
ولی باید تعریف بشه
میشه نمونه بزارید ؟ شاید همون چیزی باشه که من میخوام

setroyd
یک شنبه 21 اسفند 1390, 12:34 عصر
optional هم نمیشه ایشون میخواد به صورتی باشه که هرچقدر خواست add کنه که این امکانش 0% هست .

Veteran
یک شنبه 21 اسفند 1390, 12:59 عصر
اگر بشه به این شکل هم باشه خوبه
مثلا ما از همون اول برای تابع 20 پارامتر برای تابع بزاریم بعد موقعه فراخوانی تابع هر کردوم از پارامتر ها ها که مقدار گرفت استفاده بشه
مثلا از 20 تا پارامتر 15 تا مقدار میگیره و توی عملیات تابع مورد استفاده قرار بگیره

ASedJavad
یک شنبه 21 اسفند 1390, 13:10 عصر
سلام
اون چیزی که ایشون میخوان، تو وی بی هست، یادمه یه بار یه جایی دیدم که باید بگردم پیداش کنم.

در مورد تعریف آرگومان ورودی به صورت optional‌ کافیه این کلمه رو قبل از نام متغیر بنویسی:
Public Function Sum(Optional Value As Integer,Optional Value1 As Integer)

ASedJavad
یک شنبه 21 اسفند 1390, 14:48 عصر
سلام
شما تابعتون رو به این صورت میتونید تعریف کنید:
Public Function Sum(ParamArray Value()) As Integer
For I = LBound(Value) To UBound(Value)
Sum = Sum + Value(I)
Next
End Function