MostRestrictiveVisibility() public static méthode

Returns the most restrictive visibility of any member mentioned within the expression. I.e., if a private member is referenced within the expression, then TypeMemberVisibility.Private is returned. If TypeMemberVisibility.Public is returned, then all referenced members are public.
public static MostRestrictiveVisibility ( IMetadataHost host, IExpression expression ) : TypeMemberVisibility
host IMetadataHost
expression IExpression
Résultat TypeMemberVisibility
Exemple #1
0
        /// <summary>
        /// Mutates the <paramref name="methodContract"/> by removing any contracts that violate any of the rules
        /// about contracts, e.g., preconditions mentioning a member that is more restrictive than the method containing
        /// the precondition.
        /// TODO: Return a list of errors.
        /// </summary>
        public static void CheckMethodContract(IMetadataHost host, IMethodDefinition method, MethodContract methodContract)
        {
            var reqs    = methodContract.Preconditions;
            var newReqs = new List <IPrecondition>(methodContract.Preconditions.Count);

            foreach (var p in reqs)
            {
                var contractExpression = p.Condition;
                var v = Visibility.MostRestrictiveVisibility(host, contractExpression);
                var currentVisibility = method.Visibility;
                var intersection      = TypeHelper.VisibilityIntersection(v, currentVisibility);
                if (intersection == currentVisibility)
                {
                    newReqs.Add(p);
                }
                else
                {
                    // TODO!! BUGBUG!! Need to signal an error, not just silently not add the precondition!
                }
            }
            methodContract.Preconditions = newReqs;
        }