コード例 #1
0
        public IMethodSignatureMember AddNew(TypedName nameAndReturn, TypedName[] parameters, TypeConstrainedName[] typeParameters)
        {
            IMethodSignatureMember methodMember = new MethodSignatureMember(nameAndReturn, this.TargetDeclaration, parameters, typeParameters);

            if (this.ContainsKey(methodMember.GetUniqueIdentifier()))
            {
                throw new InvalidOperationException("method signature exists");
            }
            this._Add(methodMember.GetUniqueIdentifier(), methodMember);
            return(methodMember);
        }
コード例 #2
0
 private static IMemberParentExpression GetRootReference(MethodSignatureMember <TParameter, TTypeParameter, TSignatureDom, TParent> referencePoint)
 {
     if (referencePoint is MethodMember)
     {
         var mReference = referencePoint as MethodMember;
         if (mReference.IsStatic)
         {
             return(mReference.ParentTarget.GetTypeReference().GetTypeExpression());
         }
         else
         {
             return(mReference.ParentTarget.GetThisExpression());
         }
     }
     else
     {
         throw new NotSupportedException();
     }
 }
コード例 #3
0
 public ReferenceExpression(MethodSignatureMember <TParameter, TTypeParameter, TSignatureDom, TParent> referencePoint, IMemberParentExpression parentExpression)
     : base(referencePoint.Name, parentExpression)
 {
     this.referencePoint = referencePoint;
 }
コード例 #4
0
 public ReferenceExpression(MethodSignatureMember <TParameter, TTypeParameter, TSignatureDom, TParent> referencePoint)
     : base(referencePoint.Name, GetRootReference(referencePoint))
 {
     this.referencePoint = referencePoint;
 }