⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objecttype.vb

📁 大名鼎鼎的mono是.NET平台的跨平台(支持linux
💻 VB
📖 第 1 页 / 共 3 页
字号:
            Dim b2 As Byte            Dim bool1 As Boolean            Dim bool2 As Boolean            Dim dbl1 As Double            Dim dbl2 As Double            Dim f1 As Single            Dim f2 As Single            Dim dec1 As Decimal            Dim dec2 As Decimal            Dim l1 As Long            Dim l2 As Long            Dim i1 As Integer            Dim i2 As Integer            Dim short1 As Short            Dim short2 As Short            Dim s1 As String            Dim s2 As String            ' comparing null objects            ' if both are null, return 0            ' if one is a type, convert the other to its 'null value'            If (o1 Is Nothing) And (o2 Is Nothing) Then                Return 0            End If            If (o1 Is Nothing) Then                o1 = CreateNullObjectType(o2)            End If            If (o2 Is Nothing) Then                o2 = CreateNullObjectType(o1)            End If            'FIXME: Add defense for checking overflow.            If (TypeOf o1 Is Boolean) Then                bool1 = Convert.ToBoolean(o1)                ' bool2 = Convert.ToBoolean(o2)                Return ((-1 * (Convert.ToInt32(bool1)) - Convert.ToInt32(o2)))            ElseIf (TypeOf o2 Is Boolean) Then                'bool1 = Convert.ToBoolean(o1)                bool2 = Convert.ToBoolean(o2)                Return ((Convert.ToInt32(o1) - (-1 * Convert.ToInt32(bool2))))            ElseIf (TypeOf o1 Is Double) Or (TypeOf o2 Is Double) Then                dbl1 = Convert.ToDouble(o1)                dbl2 = Convert.ToDouble(o2)                Return dbl1 - dbl2            ElseIf (TypeOf o1 Is Single) Or (TypeOf o2 Is Single) Then                f1 = Convert.ToSingle(o1)                f2 = Convert.ToSingle(o2)                Return f1 - f2            ElseIf (TypeOf o1 Is Decimal) Or (TypeOf o2 Is Decimal) Then                dec1 = Convert.ToDecimal(o1)                dec2 = Convert.ToDecimal(o2)                Return dec1 - dec2            ElseIf (TypeOf o1 Is Long) Or (TypeOf o2 Is Long) Then                l1 = Convert.ToInt64(o1)                l2 = Convert.ToInt64(o2)                Return l1 - l2            ElseIf (TypeOf o1 Is Integer) Or (TypeOf o2 Is Integer) Then                i1 = Convert.ToInt32(o1)                i2 = Convert.ToInt32(o2)                Return i1 - i2            ElseIf (TypeOf o1 Is Short) Or (TypeOf o2 Is Short) Then                short1 = Convert.ToInt16(o1)                short2 = Convert.ToInt16(o2)                Return short1 - short2            ElseIf (TypeOf o1 Is Byte) Or (TypeOf o2 Is Byte) Then                b1 = Convert.ToByte(o1)                b2 = Convert.ToByte(o2)                Return b1 - b2            ElseIf (TypeOf o1 Is String) Or (TypeOf o2 Is String) Then                s1 = Convert.ToString(o1)                s2 = Convert.ToString(o2)                If s1 = "" Then s1 = "0"                If s2 = "" Then s2 = "0"                dbl1 = Convert.ToDouble(s1)                dbl2 = Convert.ToDouble(s2)                Return dbl1 - dbl2            Else ' Not implemented case                Throw GetCaseNotImplemented("Implement me: " + o1.GetType.Name + " " + o2.GetType.Name)            End If        End Function        Public Shared Function MulObj(ByVal o1 As System.Object, ByVal o2 As System.Object) As System.Object            Dim b1 As Byte            Dim b2 As Byte            Dim bool1 As Boolean            Dim bool2 As Boolean            Dim dbl1 As Double            Dim dbl2 As Double            Dim f1 As Single            Dim f2 As Single            Dim dec1 As Decimal            Dim dec2 As Decimal            Dim l1 As Long            Dim l2 As Long            Dim i1 As Integer            Dim i2 As Integer            Dim short1 As Short            Dim short2 As Short            Dim s1 As String            Dim s2 As String            ' comparing null objects            ' if both are null, return 0            ' if one is a type, convert the other to its 'null value'            If (o1 Is Nothing) And (o2 Is Nothing) Then                Return 0            End If            If (o1 Is Nothing) Then                o1 = CreateNullObjectType(o2)                ' multiple of zero and x is zero                Return o1            End If            If (o2 Is Nothing) Then                o2 = CreateNullObjectType(o1)                ' multiple of x and zero is zero                Return o2            End If            'FIXME: Add ElseIf implementation for all types.            'FIXME: Add defense for checking overflow.            If (TypeOf o1 Is Double) Or (TypeOf o2 Is Double) Then                dbl1 = Convert.ToDouble(o1)                dbl2 = Convert.ToDouble(o2)                Return dbl1 * dbl2            ElseIf (TypeOf o1 Is Single) Or (TypeOf o2 Is Single) Then                f1 = Convert.ToSingle(o1)                f2 = Convert.ToSingle(o2)                Return f1 * f2            ElseIf (TypeOf o1 Is Decimal) Or (TypeOf o2 Is Decimal) Then                dec1 = Convert.ToDecimal(o1)                dec2 = Convert.ToDecimal(o2)                Return dec1 * dec2            ElseIf (TypeOf o1 Is Long) Or (TypeOf o2 Is Long) Then                l1 = Convert.ToInt64(o1)                l2 = Convert.ToInt64(o2)                Return l1 * l2            ElseIf (TypeOf o1 Is Integer) Or (TypeOf o2 Is Integer) Then                i1 = Convert.ToInt32(o1)                i2 = Convert.ToInt32(o2)                Return i1 * i2            ElseIf (TypeOf o1 Is Short) Or (TypeOf o2 Is Short) Then                short1 = Convert.ToInt16(o1)                short2 = Convert.ToInt16(o2)                Return short1 * short2            ElseIf (TypeOf o1 Is Byte) Or (TypeOf o2 Is Byte) Then                b1 = Convert.ToByte(o1)                b2 = Convert.ToByte(o2)                Return b1 * b2            ElseIf (TypeOf o1 Is Boolean) Or (TypeOf o2 Is Boolean) Then                bool1 = Convert.ToBoolean(o1)                bool2 = Convert.ToBoolean(o2)                Return Convert.ToInt16(bool1) * Convert.ToInt16(bool2)            ElseIf (TypeOf o1 Is String) Or (TypeOf o2 Is String) Then                s1 = Convert.ToString(o1)                s2 = Convert.ToString(o2)                If s1 = "" Then s1 = "0"                If s2 = "" Then s2 = "0"                dbl1 = Convert.ToDouble(s1)                dbl2 = Convert.ToDouble(s2)                Return dbl1 * dbl2            Else ' Not implemented case                Throw GetCaseNotImplemented("Implement me: " + o1.GetType.Name + " " + o2.GetType.Name)            End If        End Function        Public Shared Function DivObj(ByVal o1 As System.Object, ByVal o2 As System.Object) As System.Object            Dim b1 As Byte            Dim b2 As Byte            Dim bool1 As Boolean            Dim bool2 As Boolean            Dim dbl1 As Double            Dim dbl2 As Double            Dim f1 As Single            Dim f2 As Single            Dim dec1 As Decimal            Dim dec2 As Decimal            Dim l1 As Long            Dim l2 As Long            Dim i1 As Integer            Dim i2 As Integer            Dim short1 As Short            Dim short2 As Short            Dim s1 As String            Dim s2 As String            ' comparing null objects            ' if both are null, return 0            ' if one is a type, convert the other to its 'null value'            If (o1 Is Nothing) And (o2 Is Nothing) Then                Return 0            End If            'FIXME: Add checks for Nothing            If (o1 Is Nothing) Then                o1 = CreateNullObjectType(o2)                ' divide of zero and x is infinite                Throw GetCaseNotImplemented("implement me")            End If            If (o2 Is Nothing) Then                o2 = CreateNullObjectType(o1)                ' divide of x and zero is exception                Throw New DivideByZeroException            End If            'FIXME: Add ElseIf implementation for all types.            'FIXME: Add defense for checking overflow.            If (TypeOf o1 Is Double) Or (TypeOf o2 Is Double) Then                dbl1 = Convert.ToDouble(o1)                dbl2 = Convert.ToDouble(o2)                Return dbl1 / dbl2            ElseIf (TypeOf o1 Is Single) Or (TypeOf o2 Is Single) Then                f1 = Convert.ToSingle(o1)                f2 = Convert.ToSingle(o2)                Return f1 / f2            ElseIf (TypeOf o1 Is Decimal) Or (TypeOf o2 Is Decimal) Then                dec1 = Convert.ToDecimal(o1)                dec2 = Convert.ToDecimal(o2)                Return dec1 / dec2            ElseIf (TypeOf o1 Is Long) Or (TypeOf o2 Is Long) Then                l1 = Convert.ToInt64(o1)                l2 = Convert.ToInt64(o2)                Return l1 / l2            ElseIf (TypeOf o1 Is Integer) Or (TypeOf o2 Is Integer) Then                i1 = Convert.ToInt32(o1)                i2 = Convert.ToInt32(o2)                Return i1 / i2            ElseIf (TypeOf o1 Is Short) Or (TypeOf o2 Is Short) Then                short1 = Convert.ToInt16(o1)                short2 = Convert.ToInt16(o2)                Return short1 / short2            ElseIf (TypeOf o1 Is Byte) Or (TypeOf o2 Is Byte) Then                b1 = Convert.ToByte(o1)                b2 = Convert.ToByte(o2)                Return b1 / b2            ElseIf (TypeOf o1 Is Boolean) Or (TypeOf o2 Is Boolean) Then                bool1 = Convert.ToBoolean(o1)                bool2 = Convert.ToBoolean(o2)                Return Convert.ToInt16(bool1) / Convert.ToInt16(bool2)            ElseIf (TypeOf o1 Is String) Or (TypeOf o2 Is String) Then                s1 = Convert.ToString(o1)                s2 = Convert.ToString(o2)                If s1 = "" Then s1 = "0"                If s2 = "" Then s2 = "0"                dbl1 = Convert.ToDouble(s1)                dbl2 = Convert.ToDouble(s2)                Return dbl1 / dbl2            Else ' Not implemented case                Throw GetCaseNotImplemented("Implement me: " + o1.GetType.Name + " " + o2.GetType.Name)            End If        End Function        Public Shared Function PowObj(ByVal o1 As System.Object, ByVal o2 As System.Object) As System.Object            Dim dbl1 As Double            Dim dbl2 As Double            ' comparing null objects            ' if both are null, return 0            ' if one is a type, convert the other to its 'null value'            If (o1 Is Nothing) And (o2 Is Nothing) Then                Return 0            End If            If (o1 Is Nothing) Then                o1 = CreateNullObjectType(o2)            End If            If (o2 Is Nothing) Then                o2 = CreateNullObjectType(o1)            End If            'FIXME: Add defense for checking overflow.            dbl1 = Convert.ToDouble(o1)            dbl2 = Convert.ToDouble(o2)            Return Math.Pow(dbl1, dbl2)        End Function        Public Shared Function ShiftLeftObj(ByVal o1 As Object, ByVal amount As Integer) As Object            Throw New NotImplementedException        End Function        Public Shared Function ShiftRightObj(ByVal o1 As Object, ByVal amount As Integer) As Object            Throw New NotImplementedException        End Function        Public Shared Function ModObj(ByVal o1 As System.Object, ByVal o2 As System.Object) As System.Object            Throw New NotImplementedException        End Function        Public Shared Function IDivObj(ByVal o1 As System.Object, ByVal o2 As System.Object) As System.Object            Throw New NotImplementedException        End Function        Public Shared Function XorObj(ByVal obj1 As System.Object, ByVal obj2 As System.Object) As System.Object            Throw New NotImplementedException        End Function        Public Shared Function LikeObj(ByVal vLeft As System.Object, ByVal vRight As System.Object, ByVal CompareOption As Microsoft.VisualBasic.CompareMethod) As System.Boolean            Dim strLeft As String = StringType.FromObject(vLeft)            Dim strRight As String = StringType.FromObject(vRight)            Return StringType.StrLike(strLeft, strRight, CompareOption)        End Function        Public Shared Function StrCatObj(ByVal vLeft As System.Object, ByVal vRight As System.Object) As System.Object            If TypeOf vLeft Is DBNull Then vLeft = ""            If TypeOf vRight Is DBNull Then vRight = ""            Dim strLeft As String = StringType.FromObject(vLeft)            Dim strRight As String = StringType.FromObject(vRight)            Return strLeft & strRight        End Function        Public Shared Function GetObjectValuePrimitive(ByVal o As System.Object) As System.Object            Throw New NotImplementedException        End Function        'creates a real type of a Nothing object         Private Shared Function CreateNullObjectType(ByVal otype As Object) As Object            If TypeOf otype Is Byte Then                Return Convert.ToByte(0)            ElseIf TypeOf otype Is Boolean Then                Return Convert.ToBoolean(False)            ElseIf TypeOf otype Is Long Then                Return Convert.ToInt64(0)            ElseIf TypeOf otype Is Decimal Then                Return Convert.ToDecimal(0)            ElseIf TypeOf otype Is Short Then                Return Convert.ToInt16(0)            ElseIf TypeOf otype Is Integer Then                Return Convert.ToInt32(0)            ElseIf TypeOf otype Is Double Then                Return Convert.ToDouble(0)            ElseIf TypeOf otype Is Single Then                Return Convert.ToSingle(0)            ElseIf TypeOf otype Is String Then                Return Convert.ToString("")            ElseIf TypeOf otype Is Char Then                Return Convert.ToChar(0)            ElseIf TypeOf otype Is Date Then                Return Nothing            Else                Throw GetCaseNotImplemented("Implement me: " + otype.GetType.Name)            End If        End Function    End ClassEnd Namespace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -