文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>反射的应用

反射的应用

时间:2011-03-29  来源:cuishengli

Imports System.Reflection
Module Module1
Sub Main()
Dim p As New Person
p.Name
= "cuishengli"
p.Age
= 30
p.Tall
= 1.78
p.Birth
= "1978-09-18"

Console.WriteLine(
"dict:")
Dim dict = GetInformation(p)
For Each i In dict
Console.WriteLine(
"key={0};Value={1}", i.Key, i.Value)
Next

Console.WriteLine(
"P2:")
Dim p2 = Create(Of Person)(dict)
Console.WriteLine(p2.ToString)

Console.ReadLine()
End Sub

Function Create(Of T As New)(dict As Dictionary(Of String, String)) As T
Dim obj As New T
Dim tp As Type = GetType(T)
For Each pi In tp.GetProperties
Select Case pi.PropertyType.Name
Case "String"
pi.SetValue(obj, dict(pi.Name),
Nothing)
Case "Double"
pi.SetValue(obj,
CDbl(dict(pi.Name)), Nothing)
Case "Int32"
pi.SetValue(obj,
CInt(dict(pi.Name)), Nothing)
Case "DateTime"
pi.SetValue(obj,
Date.Parse(dict(pi.Name)), Nothing)
Case Else
Throw New Exception("create 不能处理类型:" & pi.PropertyType.Name)
End Select
Next
Return obj
End Function

Function GetInformation(obj As Object) As Dictionary(Of String, String)
Dim dict As New Dictionary(Of String, String)
Dim tp = obj.GetType
For Each pi In tp.GetProperties
dict.Add(pi.Name, pi.GetValue(obj,
Nothing))
Next
Return dict
End Function

End Module
相关阅读 更多 +
排行榜 更多 +
建筑模拟器最新版

建筑模拟器最新版

模拟经营 下载
外星战士幸存者手机版

外星战士幸存者手机版

飞行射击 下载
萌宠模拟器手机版

萌宠模拟器手机版

休闲益智 下载