PDA

View Full Version : سوال: تشخیص تعداد ورودی های یک تابع ؟



en-keramat
شنبه 21 بهمن 1391, 15:02 عصر
سلام دوستان
چطوری میشه در Vb.net ورودی های یک تابع را تشخیص داد . مثلا تابع Cos یک ورودی داره که زاویه می گره
ایا VB.net تابعی داره که ورودی های هر تابع مشخص کنه ( مثل تابع nargin در Matlab ).

en-keramat
یک شنبه 22 بهمن 1391, 11:53 صبح
یعنی VB.net همچنین تابعی نداره ؟ کسی نیست جواب منو بده ؟

Mani_rf
دوشنبه 23 بهمن 1391, 18:53 عصر
از Reflection ها می توانی استفاده کنی.

en-keramat
سه شنبه 24 بهمن 1391, 13:31 عصر
می تونید بیشتر توضیح بدیید ( با مثال کد نویسی ) ؟

فرید نجفلو
سه شنبه 24 بهمن 1391, 15:51 عصر
سلام

یعنی VB.net همچنین تابعی نداره ؟
اولا نشد نداریم
دوما وقتی آقای Mani_rf (http://barnamenevis.org/member.php?81144-Mani_rf) می گن

از Reflection ها می توانی استفاده کنی.
یعنی مسیر رو نشون دادن و خودتون باید تحقیق کنید
ولی فکر کنم دیگه رسم اینه که به همه باید کد سر راست (یا حتی پروژه کامل) داده بشه!!!



Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim asm = System.Reflection.Assembly.LoadFile("C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ Microsoft.VisualBasic.dll") 'Loading Dll
Dim Mdls = asm.GetModule("Microsoft.VisualBasic.dll") 'Namespace
Dim typ = Mdls.GetType("Microsoft.VisualBasic.Interaction") 'ماژول یا کلاس مورد نظر
Dim mtd = typ.GetMethod("MsgBox") 'متد مورد نظر

Dim mtd_Declariton = mtd.ToString 'خط اول یا همان تعریف متد به صورت یک رشته
MsgBox(mtd_Declariton)

Dim Parametrs = mtd.GetParameters 'اطلاعات پارامتر های ورودی به ترتیب
Dim ResultInfo = mtd.ReturnParameter 'اطلاعات خروجی تابع

'بررسی پارامتر های ورودی
Dim Msgtxt As String = ""
Msgtxt = String.Format(Msgtxt)
For Each aPartam In Parametrs
Msgtxt &= "نام پارامتر : " & vbNewLine & aPartam.Name & vbNewLine
Msgtxt &= "نوع:" & vbNewLine & aPartam.ParameterType.Name & vbNewLine

If aPartam.IsOptional Then
Msgtxt &= " اختیاری است" & vbNewLine
Msgtxt &= "مقدار پیش فرض:" & vbNewLine
If aPartam.DefaultValue Is Nothing Then
Msgtxt &= "Nothing" & vbNewLine
Else
Msgtxt &= aPartam.DefaultValue.ToString() & vbNewLine
End If
End If

Msgtxt &= StrDup(50, "-"c) & vbNewLine
Next
MsgBox(Msgtxt, MsgBoxStyle.MsgBoxRtlReading Or MsgBoxStyle.MsgBoxRight)

End
End Sub
End Class