📄 operators.vb
字号:
{TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.UInt16, TypeCode.Int32, TypeCode.Int64, TypeCode.Int64, TypeCode.Int32, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Int32, TypeCode.Int32}, _{TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int64, TypeCode.Int64, TypeCode.Int32, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Int32, TypeCode.Int32}, _{TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.UInt32, TypeCode.Int64, TypeCode.Int64, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Int64, TypeCode.Int64}, _{TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Int64, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Int64, TypeCode.Int64}, _{TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int64, TypeCode.Int64, TypeCode.UInt64, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Object, TypeCode.Object}, _{TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Single, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Double, TypeCode.Double}, _{TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Double, TypeCode.Double}, _{TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Decimal, TypeCode.Decimal}, _{TypeCode.Object, TypeCode.Object, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.DateTime, TypeCode.Object, TypeCode.DateTime}, _{TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int64, TypeCode.Int64, TypeCode.Object, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.Object, TypeCode.Object, TypeCode.Object}, _{TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.Object, TypeCode.String, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int32, TypeCode.Int64, TypeCode.Int64, TypeCode.Object, TypeCode.Double, TypeCode.Double, TypeCode.Decimal, TypeCode.DateTime, TypeCode.Object, TypeCode.String} _} 'Returns the expected return TypeCode of operation between these two objects or TypeCode.Empty if operation is not possible. 'Notice: The expected TypeCode may not be the actual TypeCode of the return type. The actual type return is "black box"ed 'by the operation implementation. For example in the case of Integer and Short the expected return TypeCode is of Integer 'but the actual return type may be Long (in the case of overflow) Private Shared Function DestTypeCodeOpAdd(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_ADD(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeOpSubtract(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_SUBTRACT(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeOpDivide(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_DIVIDE(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeOpIntDivide(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_INTDIVIDE(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeOpMultiply(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_MULTIPLY(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeOpMod(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_MOD(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeBitwiseOp(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_BITWISE_OP(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function DestTypeCodeOpCompare(ByVal obj1 As Object, ByVal obj2 As Object) As TypeCode Return DEST_TYPECODE_COMPARE(GetTypeCode(obj1), GetTypeCode(obj2)) End Function Private Shared Function AddBooleans(ByVal o1 As Boolean, ByVal o2 As Boolean) As Object Dim ret As Short = 0 If (o1) Then ret = ret - 1S End If If (o2) Then ret = ret - 1S End If Return ret End Function Private Shared Function AddBytes(ByVal o1 As Byte, ByVal o2 As Byte) As Object Dim s As Short = CType(o1, Short) + o2 If (s > Byte.MaxValue) Then Return s End If Return CType(s, Byte) End Function Private Shared Function AddChars(ByVal o1 As Char, ByVal o2 As Char) As Object Return AddStrings(o1.ToString(), o2.ToString()) End Function Private Shared Function AddDateTimes(ByVal o1 As DateTime, ByVal o2 As DateTime) As Object Return AddStrings(o1.ToString(), o2.ToString()) End Function Private Shared Function AddDecimals(ByVal o1 As Decimal, ByVal o2 As Decimal) As Object Return o1 + o2 End Function Private Shared Function AddDoubles(ByVal o1 As Double, ByVal o2 As Double) As Object Return o1 + o2 End Function Private Shared Function AddInt16s(ByVal o1 As Short, ByVal o2 As Short) As Object Dim int As Integer = CType(o1, Integer) + o2 If (int > Short.MaxValue) Or (int < Short.MinValue) Then Return int End If Return CType(int, Short) End Function Private Shared Function AddInt32s(ByVal o1 As Integer, ByVal o2 As Integer) As Object Dim l As Long = CType(o1, Long) + o2 If (l > Integer.MaxValue) Or (l < Integer.MinValue) Then Return l End If Return CType(l, Integer) End Function Private Shared Function AddInt64s(ByVal o1 As Long, ByVal o2 As Long) As Object Return o1 + o2 End Function Private Shared Function AddObjects(ByVal o1 As Object, ByVal o2 As Object) As Object Dim ret As Object = Nothing If Not (InvokeBinaryOperator(o1, o2, "op_Addition", ret)) Then Throw New InvalidOperationException() End If Return ret End Function Private Shared Function AddSBytes(ByVal o1 As SByte, ByVal o2 As SByte) As Object Dim s As Short = CType(o1, Short) + o2 If (s > SByte.MaxValue) Or (s < SByte.MinValue) Then Return s End If
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -