Fan.Sys.Method.isGenericMethod C# (CSharp) Method

isGenericMethod() public method

Return if this method contains generic parameters in it's signature.
public isGenericMethod ( ) : bool
return bool
        public bool isGenericMethod()
        {
            return (m_mask & GENERIC) != 0;
        }

Usage Example

Example #1
0
        /// <summary>
        /// Parameterize the specified method (reuse if generic
        /// parameterization isn't necessary).
        /// </summary>
        internal Method parameterize(Method m)
        {
            // if not generic, short circuit and reuse original
            if (!m.isGenericMethod())
            {
                return(m);
            }

            // new signature
            Func func = m.m_func;
            Type ret;
            List pars = new List(Sys.ParamType, m.m_params.sz());

            // parameterize return type
            if (func.returns().isGenericParameter())
            {
                ret = parameterize(func.returns());
            }
            else
            {
                ret = func.returns();
            }

            // narrow pars (or just reuse if not parameterized)
            for (int i = 0; i < m.m_params.sz(); i++)
            {
                Param p = (Param)m.m_params.get(i);
                if (p.m_type.isGenericParameter())
                {
                    pars.add(new Param(p.m_name, parameterize(p.m_type), p.m_mask));
                }
                else
                {
                    pars.add(p);
                }
            }

            Method pm = new Method(this, m.m_name, m.m_flags, m.m_facets, m.m_lineNum, ret, m.m_inheritedReturns, pars, m);

            pm.m_reflect = m.m_reflect;
            return(pm);
        }
All Usage Examples Of Fan.Sys.Method::isGenericMethod