当前位置: 首页>>代码示例>>C#>>正文


C# ParameterInfo.IsParamArray方法代码示例

本文整理汇总了C#中System.Reflection.ParameterInfo.IsParamArray方法的典型用法代码示例。如果您正苦于以下问题:C# ParameterInfo.IsParamArray方法的具体用法?C# ParameterInfo.IsParamArray怎么用?C# ParameterInfo.IsParamArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Reflection.ParameterInfo的用法示例。


在下文中一共展示了ParameterInfo.IsParamArray方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SimpleArgBuilder

 public SimpleArgBuilder(ParameterInfo info, int index)
     : this(info, info.ParameterType, index, info.IsParamArray(), info.IsParamDictionary()) {
 }
开发者ID:BenHall,项目名称:ironruby,代码行数:3,代码来源:SimpleArgBuilder.cs

示例2: CheckParameter

 /// <summary>
 /// 检查方法参数。
 /// </summary>
 /// <param name="parameter">要检查的方法参数。</param>
 /// <param name="type">方法实参类型。</param>
 /// <param name="optionalParamBinding">是否对可选参数进行绑定。</param>
 /// <param name="isExplicit">类型检查时,如果考虑显式类型转换,则为 <c>true</c>;
 /// 否则只考虑隐式类型转换。</param>
 /// <param name="convertRefType">是否允许对按引用传递的类型进行类型转换。</param>
 /// <returns>如果方法参数与实参兼容,则为 <c>true</c>;否则为 <c>false</c>。</returns>
 private static bool CheckParameter(ParameterInfo parameter, Type type, bool optionalParamBinding,
     bool isExplicit, bool convertRefType)
 {
     Type paramType = parameter.ParameterType;
     if (paramType.ContainsGenericParameters)
     {
         return true;
     }
     if (type == typeof(Missing))
     {
         // 检查可选参数和 params 参数。
         return parameter.IsParamArray() || (optionalParamBinding && parameter.HasDefaultValue);
     }
     bool isByRef = false;
     if (paramType.IsByRef)
     {
         paramType = paramType.GetElementType();
         isByRef = true;
     }
     if (type == null)
     {
         if (isByRef && !convertRefType)
         {
             return false;
         }
         // 检查引用类型。
         return !paramType.IsValueType;
     }
     if (type.IsByRef)
     {
         if (isByRef)
         {
             return type.GetElementType() == paramType;
         }
         if (!convertRefType)
         {
             return false;
         }
         type = type.GetElementType();
     }
     return paramType.IsConvertFrom(type, isExplicit);
 }
开发者ID:GISwilson,项目名称:Cyjb,代码行数:52,代码来源:MethodArgumentsInfo.cs

示例3: Convert

        public override Expression Convert(DynamicMetaObject metaObject, Type restrictedType, ParameterInfo info, Type toType)
        {
            if (toType.IsAssignableFrom(restrictedType))
                return AstUtils.Convert(metaObject.Expression, toType);

            if (info.IsParamArray() && typeof(IList<object>).IsAssignableFrom(metaObject.LimitType))
            {
                return GetDynamicConversion(metaObject.Expression, toType);
            }

            if (toType == typeof(string))
            {
                return GetDynamicConversion(metaObject.Expression, toType);
            }

            return base.Convert(metaObject, restrictedType, info, toType);
        }
开发者ID:Alxandr,项目名称:IronTotem,代码行数:17,代码来源:OverloadResolver.cs


注:本文中的System.Reflection.ParameterInfo.IsParamArray方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。