VB.Net by API/System/Type

Материал из VB Эксперт
Перейти к: навигация, поиск

Type.FindMembers

<source lang="vbnet"> Imports System Imports System.Reflection

Public Class MainClass

   Shared Sub Main(  )
        Dim t As Type = Type.GetType("System.Reflection.Assembly")
        Dim mbrInfoArray As MemberInfo(  ) = t.FindMembers( _
            MemberTypes.Method, _
            BindingFlags.Public Or _
            BindingFlags.Static Or _
            BindingFlags.NonPublic Or _
            BindingFlags.Instance Or _
            BindingFlags.DeclaredOnly, _
            Type.FilterName, "Get*")
        Dim inf As MemberInfo
        For Each inf In mbrInfoArray
            Console.WriteLine("{0} is a {1}", _
                inf, inf.MemberType)
        Next
   End Sub
 

End Class


 </source>


Type.GetHashCode()

<source lang="vbnet"> Imports System public class MainClass

  Shared Sub Main()
       Dim i As Integer = 15
       Console.WriteLine(i.ToString())
       Console.WriteLine("Hash is: " + i.GetHashCode().ToString())
       Console.WriteLine("Type is: " + i.GetType().ToString)
       Console.WriteLine("Type full name is: " + i.GetType().FullName())
       Console.WriteLine("Type assembly qualified name is: " + i.GetType().AssemblyQualifiedName)
       Console.WriteLine("Namespace is: " + i.GetType().Namespace)
  End Sub

End Class


 </source>


Type.GetInterfaces()

<source lang="vbnet">

Imports System.Reflection

Public Class MainClass

  Public Shared Sub Main()
       Dim Book = New Derived()
       Dim Member As MemberInfo
       Console.WriteLine("Members:")
       For Each Member In Book.GetType.GetMembers()
           Console.WriteLine(Member.Name & " " & Member.MemberType)
       Next
       Dim PropertyObj As PropertyInfo
       Console.WriteLine("Properties:")
       For Each PropertyObj In Book.GetType.GetProperties()
           Console.WriteLine(PropertyObj.Name & " " & PropertyObj.PropertyType.ToString())
       Next
       Dim MethodObj As MethodInfo
       Console.WriteLine("Methods:")
       For Each MethodObj In Book.GetType.GetMethods()
           Console.WriteLine(MethodObj.Name & " " & MethodObj.ReturnType.ToString())
       Next
       Dim EventObj As EventInfo
       Console.WriteLine("Events:")
       For Each EventObj In Book.GetType.GetEvents()
           Console.WriteLine(EventObj.Name & " " & EventObj.IsMulticast)
       Next
       Dim InterfaceObj As Type
       Console.WriteLine("Events:")
       For Each InterfaceObj In Book.GetType.GetInterfaces()
           Console.WriteLine(InterfaceObj.Name)
       Next
  
  End Sub

End Class

   Class Base
       Public ProductID As String
       Public Weight As Double
       Private ProductPrice As Double
       Public Sub New()
       End Sub
       Public ReadOnly Property Price() As Double
           Get
               Return 0
           End Get
       End Property
   End Class
   Class Derived
       Inherits Base
       Implements IFormattable
       Public Title As String
       Public Author As String
       Public Publisher As String
       Public Overridable Overloads Function ToString(ByVal _
         Format As String, ByVal Provider As IFormatProvider) _
         As String Implements IFormattable.ToString
           ToString = Title
       End Function
       Public Sub New()
           MyBase.New()
       End Sub
   End Class
   
  
   
 </source>


Type.GetMembers()

<source lang="vbnet"> Module Module1

   Class Book
       Public Title As String
       Public Author As String
       Public Price As Double
       Public Sub New(ByVal Title As String, ByVal Author As String, ByVal Price As Double)
           Me.Title = Title
           Me.Author = Author
           Me.Price = Price
       End Sub
       Public Sub ShowTitle()
           Console.WriteLine("Title: " & Title)
       End Sub
       Public Sub ShowBook()
           Console.WriteLine("Title: " & Title)
           Console.WriteLine("Author: " & Author)
           Console.WriteLine("Price: " & Price)
       End Sub
   End Class
   Sub Main()
       Dim NetBook As New Book("AAA","BBB", 49.99)
       Console.WriteLine("Member Names")
       Dim Member As Reflection.MemberInfo
       For Each Member In NetBook.GetType.GetMembers()
           Console.WriteLine(Member.Name)
       Next
   End Sub

End Module


 </source>


Type.GetMethod

<source lang="vbnet"> Imports System Imports System.Reflection

Public Class MainClass

   Shared Sub Main(  )
        Dim theMathType As Type = Type.GetType("System.Math")
        Dim paramTypes(0) As Type
        paramTypes(0) = Type.GetType("System.Double")
        Dim ConsineInfo As MethodInfo = _
            theMathType.GetMethod("Sin", paramTypes)
        Dim parameters(0) As Object
        parameters(0) = 45 * (Math.PI / 180)
        Dim returnVal As Object
        returnVal = ConsineInfo.Invoke(theMathType, parameters)
        Console.WriteLine("The sine of a 45 degree angle is {0}", _
            returnVal)
   End Sub
 

End Class


 </source>


Type.GetType()

<source lang="vbnet"> Imports System public class MainClass

  Shared Sub Main()
       Dim i As Integer = 15
       Console.WriteLine(i.ToString())
       Console.WriteLine("Hash is: " + i.GetHashCode().ToString())
       Console.WriteLine("Type is: " + i.GetType().ToString)
       Console.WriteLine("Type full name is: " + i.GetType().FullName())
       Console.WriteLine("Type assembly qualified name is: " + i.GetType().AssemblyQualifiedName)
       Console.WriteLine("Namespace is: " + i.GetType().Namespace)
  End Sub

End Class


 </source>


Type.UnderlyingSystemType

<source lang="vbnet"> Imports System.Reflection

Public Class MainClass

  Public Shared Sub Main()
       Dim A As Integer
       Dim B As Double
       Dim C As String = "Hello, world"
       Dim D As DateTime = New DateTime(Now.Ticks)
       Dim E As Byte
       Dim F As Boolean
       Console.WriteLine("Type Codes:")
       Console.WriteLine("Integer: " & A.GetTypeCode() & _
          " " & A.GetType().Name & " " & A.GetType().UnderlyingSystemType.ToString())
       Console.WriteLine("Double: " & B.GetTypeCode() & _
          " " & B.GetType().Name & " " & B.GetType().UnderlyingSystemType.ToString())
       Console.WriteLine("String: " & C.GetTypeCode() & _
          " " & C.GetType().Name & " " & C.GetType().UnderlyingSystemType.ToString())
       Console.WriteLine("DateTime: " & D.GetTypeCode() & _
          " " & D.GetType().Name & " " & D.GetType().UnderlyingSystemType.ToString())
       Console.WriteLine("Byte: " & E.GetTypeCode() & _
          " " & E.GetType().Name & " " & E.GetType().UnderlyingSystemType.ToString())
       Console.WriteLine("Boolean: " & F.GetTypeCode() & _
          " " & F.GetType().Name & " " & F.GetType().UnderlyingSystemType.ToString())
  
  End Sub

End Class


 </source>