public static Func <object, string, bool, object, object> CreateDelegate(object @object)
        {
            if (@object == null)
            {
                return(null);
            }
            var type = @object.GetType();

            return(GetterSetters.GetOrAdd(type, _func =>
            {
                var exp = new FastExpressions(@object);
                return exp.GenerateExpressions();
            }));
        }
        public static Func <object, string, bool, object, object> CreateDelegate(object @object)
        {
            bool flag = @object == null;
            Func <object, string, bool, object, object> result;

            if (flag)
            {
                result = null;
            }
            else
            {
                Type type = @object.GetType();
                result = FastExpressions.GetterSetters.GetOrAdd(type, delegate(Type _func)
                {
                    FastExpressions exp = new FastExpressions(@object);
                    return(exp.GenerateExpressions());
                });
            }
            return(result);
        }