Created
June 17, 2012 17:02
-
-
Save bonprosoft/2945064 to your computer and use it in GitHub Desktop.
変数/引数管理用の補助クラス
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
''' <summary> | |
''' 変数/引数管理用の補助クラス(VBPP_Variable、及びその派生の中で使用) | |
''' </summary> | |
''' <remarks></remarks> | |
Public Class VBPP_VariableType | |
''' <summary> | |
''' ユーザー定義のもの(クラスや構造体など)か、そうでないか | |
''' </summary> | |
Public DefineType As VBPP_DefineType | |
''' <summary> | |
''' ユーザーが生成したクラス/構造体を使用する場合のみ使用 | |
''' </summary> | |
Public Name As String | |
''' <summary> | |
''' そうでない場合は、こちらを指定 | |
''' </summary> | |
Public PrimitiveType As VBPP_PrimitiveType | |
Public IsRef As Boolean = False | |
Public Overloads Sub SetType(ByVal PrimitiveType As VBPP_PrimitiveType, ByVal IsArray As Boolean) | |
IsRef = False | |
Name = "" | |
If IsArray = True Then | |
DefineType = VBPP_DefineType.PrimitiveArray | |
Else | |
DefineType = VBPP_DefineType.Primitive | |
End If | |
End Sub | |
Public Overloads Sub SetType(ByVal StructureName As String, ByVal IsArray As Boolean) | |
IsRef = False | |
Name = StructureName | |
If IsArray = True Then | |
DefineType = VBPP_DefineType.UserDefinedArray | |
Else | |
DefineType = VBPP_DefineType.UserDefined | |
End If | |
End Sub | |
Public Overloads Sub SetType(ByVal PrimitiveType As VBPP_PrimitiveType, ByVal IsArray As Boolean, ByVal IsRef As Boolean) | |
Me.IsRef = IsRef | |
Name = "" | |
If IsArray = True Then | |
DefineType = VBPP_DefineType.PrimitiveArray | |
Else | |
DefineType = VBPP_DefineType.Primitive | |
End If | |
End Sub | |
Public Overloads Sub SetType(ByVal StructureName As String, ByVal IsArray As Boolean, ByVal IsRef As Boolean) | |
Me.IsRef = IsRef | |
Name = StructureName | |
If IsArray = True Then | |
DefineType = VBPP_DefineType.UserDefinedArray | |
Else | |
DefineType = VBPP_DefineType.UserDefined | |
End If | |
End Sub | |
Public Function GetSystemType() As System.Type | |
If IsRef = False Then | |
Select Case DefineType | |
Case VBPP_DefineType.Primitive | |
Select Case PrimitiveType | |
Case VBPP_PrimitiveType.VBPP_INT | |
Return GetType(Integer) | |
Case VBPP_PrimitiveType.VBPP_STRING | |
Return GetType(String) | |
Case VBPP_PrimitiveType.VBPP_DOUBLE | |
Return GetType(Double) | |
Case VBPP_PrimitiveType.VBPP_BOOL | |
Return GetType(Boolean) | |
Case VBPP_PrimitiveType.VBPP_CHAR | |
Return GetType(Char) | |
Case VBPP_PrimitiveType.VBPP_OBJECT | |
Return GetType(Object) | |
Case VBPP_PrimitiveType.VBPP_VOID | |
Return GetType(Void) | |
Case VBPP_PrimitiveType.VBPP_POINTER | |
Return GetType(Long) | |
Case Else | |
Return GetType(Void) | |
End Select | |
Case VBPP_DefineType.PrimitiveArray | |
Select Case PrimitiveType | |
Case VBPP_PrimitiveType.VBPP_INT | |
Return GetType(Integer()) | |
Case VBPP_PrimitiveType.VBPP_STRING | |
Return GetType(String()) | |
Case VBPP_PrimitiveType.VBPP_DOUBLE | |
Return GetType(Double()) | |
Case VBPP_PrimitiveType.VBPP_BOOL | |
Return GetType(Boolean()) | |
Case VBPP_PrimitiveType.VBPP_CHAR | |
Return GetType(Char()) | |
Case VBPP_PrimitiveType.VBPP_OBJECT | |
Return GetType(Object()) | |
Case VBPP_PrimitiveType.VBPP_VOID | |
Return GetType(Void) | |
Case VBPP_PrimitiveType.VBPP_POINTER | |
Return GetType(Long()) | |
Case Else | |
Return GetType(Void) | |
End Select | |
End Select | |
Else | |
Select Case DefineType | |
Case VBPP_DefineType.Primitive | |
Select Case PrimitiveType | |
Case VBPP_PrimitiveType.VBPP_INT | |
Return System.Type.GetType("System.Int32&") | |
Case VBPP_PrimitiveType.VBPP_STRING | |
Return System.Type.GetType("System.String&") | |
Case VBPP_PrimitiveType.VBPP_DOUBLE | |
Return System.Type.GetType("System.Double&") | |
Case VBPP_PrimitiveType.VBPP_BOOL | |
Return System.Type.GetType("System.Boolean&") | |
Case VBPP_PrimitiveType.VBPP_CHAR | |
Return System.Type.GetType("System.Char&") | |
Case VBPP_PrimitiveType.VBPP_OBJECT | |
Return System.Type.GetType("System.Object&") | |
Case VBPP_PrimitiveType.VBPP_VOID | |
Return GetType(Void) | |
Case VBPP_PrimitiveType.VBPP_POINTER | |
Return System.Type.GetType("System.Int64&") | |
Case Else | |
Return GetType(Void) | |
End Select | |
Case VBPP_DefineType.PrimitiveArray | |
Select Case PrimitiveType | |
Case VBPP_PrimitiveType.VBPP_INT | |
Return System.Type.GetType("System.Int32[]&") | |
Case VBPP_PrimitiveType.VBPP_STRING | |
Return System.Type.GetType("System.String[]&") | |
Case VBPP_PrimitiveType.VBPP_DOUBLE | |
Return System.Type.GetType("System.Double[]&") | |
Case VBPP_PrimitiveType.VBPP_BOOL | |
Return System.Type.GetType("System.Boolean[]&") | |
Case VBPP_PrimitiveType.VBPP_CHAR | |
Return System.Type.GetType("System.Char[]&") | |
Case VBPP_PrimitiveType.VBPP_OBJECT | |
Return System.Type.GetType("System.Object[]&") | |
Case VBPP_PrimitiveType.VBPP_VOID | |
Return GetType(Void) | |
Case VBPP_PrimitiveType.VBPP_POINTER | |
Return System.Type.GetType("System.Int64[]&") | |
Case Else | |
Return GetType(Void) | |
End Select | |
End Select | |
End If | |
'それ以外(構造体やクラス) | |
Return Nothing | |
End Function | |
End Class | |
Public Enum VBPP_PrimitiveType | |
VBPP_STRING | |
VBPP_INT | |
VBPP_DOUBLE | |
VBPP_BOOL | |
VBPP_CHAR | |
VBPP_POINTER | |
VBPP_OBJECT | |
VBPP_VOID | |
End Enum | |
Public Enum VBPP_DefineType | |
Primitive | |
PrimitiveArray | |
UserDefined | |
UserDefinedArray | |
End Enum |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment