Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Clever Convert. Really?

Clever Convert. Really?

Scheduled Pinned Locked Moved The Weird and The Wonderful
helpquestion
6 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Svetlin Panayotov
    wrote on last edited by
    #1

    Are those pesky nulls bothering you? No problem - here's the Clever solution:

    public class CleverConvert
    {

    public static object IsNull(object value, object default\_value) 
    { 
        if (value == null) { 
            return default\_value; 
        } 
        return value; 
    } 
    
    public static object IsDbNullOrNull(object value, object default\_value) 
    { 
        if (value == null | object.ReferenceEquals(value, DBNull.Value)) { 
            return default\_value; 
        } 
        return value; 
    } 
    
    public static object IsDBNull(object value, object default\_value) 
    {
        return null;// CleverConvert.IsDBNull(value, default\_value, value); 
    } 
    
    public static object IsDBNull(object value, object default\_value, object else\_value) 
    { 
        if (object.ReferenceEquals(value, DBNull.Value)) { 
            return default\_value; 
        } 
        return else\_value; 
    } 
    
    public static string FormatDbNullDate(object value, string format) 
    { 
        string result = ""; 
        if ((!object.ReferenceEquals(value, DBNull.Value)) & (value != null)) { 
            result = ((DateTime)value).ToString(format); 
        } 
        return result; 
    } 
    
    public static object IsEmptyString(string value, object default\_value) 
    { 
        return IsEmptyString(value, default\_value, value); 
    } 
    
    public static object IsEmptyString(string value, object default\_value, object else\_value) 
    { 
        if (value == "") { 
            return default\_value; 
        } 
        return else\_value; 
    }
    

    }

    The class name and comments (actually a commented line) are the way I found them - I haven't changed anything.

    G B M 3 Replies Last reply
    0
    • S Svetlin Panayotov

      Are those pesky nulls bothering you? No problem - here's the Clever solution:

      public class CleverConvert
      {

      public static object IsNull(object value, object default\_value) 
      { 
          if (value == null) { 
              return default\_value; 
          } 
          return value; 
      } 
      
      public static object IsDbNullOrNull(object value, object default\_value) 
      { 
          if (value == null | object.ReferenceEquals(value, DBNull.Value)) { 
              return default\_value; 
          } 
          return value; 
      } 
      
      public static object IsDBNull(object value, object default\_value) 
      {
          return null;// CleverConvert.IsDBNull(value, default\_value, value); 
      } 
      
      public static object IsDBNull(object value, object default\_value, object else\_value) 
      { 
          if (object.ReferenceEquals(value, DBNull.Value)) { 
              return default\_value; 
          } 
          return else\_value; 
      } 
      
      public static string FormatDbNullDate(object value, string format) 
      { 
          string result = ""; 
          if ((!object.ReferenceEquals(value, DBNull.Value)) & (value != null)) { 
              result = ((DateTime)value).ToString(format); 
          } 
          return result; 
      } 
      
      public static object IsEmptyString(string value, object default\_value) 
      { 
          return IsEmptyString(value, default\_value, value); 
      } 
      
      public static object IsEmptyString(string value, object default\_value, object else\_value) 
      { 
          if (value == "") { 
              return default\_value; 
          } 
          return else\_value; 
      }
      

      }

      The class name and comments (actually a commented line) are the way I found them - I haven't changed anything.

      G Offline
      G Offline
      GibbleCH
      wrote on last edited by
      #2

      Is this supposed to be c#? I suppose

      var valueOrDefault = value ?? defaultValue;

      was just too complicated?

      S J 2 Replies Last reply
      0
      • S Svetlin Panayotov

        Are those pesky nulls bothering you? No problem - here's the Clever solution:

        public class CleverConvert
        {

        public static object IsNull(object value, object default\_value) 
        { 
            if (value == null) { 
                return default\_value; 
            } 
            return value; 
        } 
        
        public static object IsDbNullOrNull(object value, object default\_value) 
        { 
            if (value == null | object.ReferenceEquals(value, DBNull.Value)) { 
                return default\_value; 
            } 
            return value; 
        } 
        
        public static object IsDBNull(object value, object default\_value) 
        {
            return null;// CleverConvert.IsDBNull(value, default\_value, value); 
        } 
        
        public static object IsDBNull(object value, object default\_value, object else\_value) 
        { 
            if (object.ReferenceEquals(value, DBNull.Value)) { 
                return default\_value; 
            } 
            return else\_value; 
        } 
        
        public static string FormatDbNullDate(object value, string format) 
        { 
            string result = ""; 
            if ((!object.ReferenceEquals(value, DBNull.Value)) & (value != null)) { 
                result = ((DateTime)value).ToString(format); 
            } 
            return result; 
        } 
        
        public static object IsEmptyString(string value, object default\_value) 
        { 
            return IsEmptyString(value, default\_value, value); 
        } 
        
        public static object IsEmptyString(string value, object default\_value, object else\_value) 
        { 
            if (value == "") { 
                return default\_value; 
            } 
            return else\_value; 
        }
        

        }

        The class name and comments (actually a commented line) are the way I found them - I haven't changed anything.

        B Offline
        B Offline
        BillW33
        wrote on last edited by
        #3

        That is some really scary code. :omg:

        Just because the code works, it doesn't mean that it is good code.

        1 Reply Last reply
        0
        • G GibbleCH

          Is this supposed to be c#? I suppose

          var valueOrDefault = value ?? defaultValue;

          was just too complicated?

          S Offline
          S Offline
          Svetlin Panayotov
          wrote on last edited by
          #4

          Oh yes, that's C# I forgot to mention it

          1 Reply Last reply
          0
          • S Svetlin Panayotov

            Are those pesky nulls bothering you? No problem - here's the Clever solution:

            public class CleverConvert
            {

            public static object IsNull(object value, object default\_value) 
            { 
                if (value == null) { 
                    return default\_value; 
                } 
                return value; 
            } 
            
            public static object IsDbNullOrNull(object value, object default\_value) 
            { 
                if (value == null | object.ReferenceEquals(value, DBNull.Value)) { 
                    return default\_value; 
                } 
                return value; 
            } 
            
            public static object IsDBNull(object value, object default\_value) 
            {
                return null;// CleverConvert.IsDBNull(value, default\_value, value); 
            } 
            
            public static object IsDBNull(object value, object default\_value, object else\_value) 
            { 
                if (object.ReferenceEquals(value, DBNull.Value)) { 
                    return default\_value; 
                } 
                return else\_value; 
            } 
            
            public static string FormatDbNullDate(object value, string format) 
            { 
                string result = ""; 
                if ((!object.ReferenceEquals(value, DBNull.Value)) & (value != null)) { 
                    result = ((DateTime)value).ToString(format); 
                } 
                return result; 
            } 
            
            public static object IsEmptyString(string value, object default\_value) 
            { 
                return IsEmptyString(value, default\_value, value); 
            } 
            
            public static object IsEmptyString(string value, object default\_value, object else\_value) 
            { 
                if (value == "") { 
                    return default\_value; 
                } 
                return else\_value; 
            }
            

            }

            The class name and comments (actually a commented line) are the way I found them - I haven't changed anything.

            M Offline
            M Offline
            Matt Gerrans
            wrote on last edited by
            #5

            The third one is especially sublime -- just return null no matter what. I think the compiler should detect the proportion of your methods that are static and if it is higher than say 2%, should issue an error "You are not fit to be programming. Please step away from the computer."

            Matt Gerrans

            1 Reply Last reply
            0
            • G GibbleCH

              Is this supposed to be c#? I suppose

              var valueOrDefault = value ?? defaultValue;

              was just too complicated?

              J Offline
              J Offline
              Jorgen Sigvardsson
              wrote on last edited by
              #6

              Coming from a C++ background, I constantly have to remind myself about the ?? operator. One of these days, I will type it before ReSharper reminds me that my ?: expression can be converted into an equivalent ?? expression. :)

              -- Kein Mitleid Für Die Mehrheit

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups