Wednesday, 1 June 2016

Convert the Non Nullable types to Nullable Types and Nullable Types to Non Nullable Types in C#

In this post we are going are going to see how to convert a Non Nullable Types and Nullable Types to Non Nullable Types in C#. Generally in C# programming there might be a chance that we have to assign a value from Non Nullable to Nullable or Nullable to Non Nullable , to do it easily now we are going to see an Extension Method , which can be useful very handy.

public static class Extensions
        public static T ConvertTypeTo<T>(this object obj)
            Type typ = typeof(T);
            Type Ntype = Nullable.GetUnderlyingType(typ);
             if (obj == null)
                    return default(T);
if (Ntype == null) { return (T)Convert.ChangeType(obj, typ); } else { return (T)Convert.ChangeType(obj, Ntype); } } public static T? ToNullable<T>(this object x) where T:struct { return x == null ? null : (T?)Convert.ChangeType(x, typeof(T)); } }

We can use this Extension class like below, this method will reflect in each and every object.

class Program
        public static Nullable<bool> IsLogin { set; get; }

        static void Main(string[] args)
            int total = 10;
            bool ischeck = false;

            Nullable<int> res1 = total.ConvertTypeTo<Nullable<int>>();
            int res3 = res1.ConvertTypeTo<int>();

            if (res1.HasValue)


            Nullable<bool> res2 = ischeck.ToNullable<bool>();


            bool _login = IsLogin.ConvertTypeTo<bool>();




The output of this code is 

From this post you can see how to convert a Nullable to NonNullable Types, Non Nullable Types to Nullable 

No comments:

Post a Comment