Revision: 52147
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 14, 2011 16:45 by bryanlyman
Initial Code
Imports System
Imports System.Text
Imports Collections
''' <summary>
''' System Object extensions
''' Originally these were intended to be extenders to the System.Object object,
''' but because in VB.net you cannot extend the System.Object object I changed these to global functions
''' C# allows this because it doesn't have the same late binding restrictions as VB
''' </summary>
''' <remarks>by Bryan Lyman</remarks>
Module Extensions
''' <summary>
''' Simple null object checker
''' </summary>
''' <returns>True if the object is Nothing or DBNull</returns>
Public Function IsNullType(ByVal obj As Object) As Boolean
Return (obj Is Nothing OrElse obj Is DBNull.Value)
End Function
''' <summary>
''' Simple signed value object checker
''' </summary>
''' <returns>True if the object type is signed</returns>
Public Function IsSigned(ByVal obj As Object) As Boolean
Return (TypeOf obj Is System.ValueType AndAlso (TypeOf obj Is Int32 OrElse TypeOf obj Is Int64 OrElse TypeOf obj Is Int16 OrElse TypeOf obj Is IntPtr OrElse TypeOf obj Is Decimal OrElse TypeOf obj Is SByte))
End Function
''' <summary>
''' Simple empty value object checker
''' </summary>
''' <returns>True if the object is empty and is not Nothing</returns>
Public Function IsEmpty(ByVal obj As Object) As Boolean
Return (Not IsNullType(obj) AndAlso ( _
(TypeOf obj Is String AndAlso DirectCast(obj, String).Length = 0) OrElse _
(TypeOf obj Is StringBuilder AndAlso DirectCast(obj, StringBuilder).Length = 0) OrElse _
(TypeOf obj Is ICollection AndAlso DirectCast(obj, ICollection).Count = 0) OrElse _
(TypeOf obj Is System.Array AndAlso DirectCast(obj, Array).Length = 0) OrElse _
(IsSigned(obj) AndAlso obj = -1) OrElse _
(TypeOf obj Is System.ValueType AndAlso obj = 0) OrElse _
(TypeOf obj Is System.Guid AndAlso DirectCast(obj, Guid) = Guid.Empty) _
))
End Function
''' <summary>
''' Empty value or null object checker
''' </summary>
''' <returns>True if the object is empty or Nothing or DBNull</returns>
Public Function IsNullTypeOrEmpty(ByVal obj As Object) As Boolean
Return (IsNullType(obj) OrElse IsEmpty(obj))
End Function
End Module
'an example of how this makes your life easier
Private Sub Test(ByVal testVar)
If (IsNullTypeOrEmpty(testVar)) Then
throw new Exception("Invalid testVar")
End If
DoSomething(testVar)
End Sub
Initial URL
Initial Description
Because there is no way to use object extenders in vb.net here is an example of how you can get similar functionality. See the C# example for further info.
Initial Title
Global System Object extensions for easier conditionals (VB.net example)
Initial Tags
class, c, Net, extension
Initial Language
VB.NET