Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer.ExactInference C# (CSharp) Метод

ExactInference() приватный Метод

private ExactInference ( CType pSource, CType pDest ) : void
pSource CType
pDest CType
Результат void
        private void ExactInference(CType pSource, CType pDest)
        {
            // SPEC: An exact inference from a CType U to a CType V is made as follows:

            // SPEC:  If V is one of the unfixed Xi then U is added to the set of
            // SPEC:   exact bounds for Xi.
            if (ExactTypeParameterInference(pSource, pDest))
            {
                return;
            }

            // SPEC:  Otherwise, if U is an array CType UE[...] and V is an array CType VE[...]
            // SPEC:   of the same rank then an exact inference from UE to VE is made.
            if (ExactArrayInference(pSource, pDest))
            {
                return;
            }

            // SPEC:  Otherwise, if U is the CType U1? and V is the CType V1? then an
            // SPEC:   exact inference is made from U to V.

            if (ExactNullableInference(pSource, pDest))
            {
                return;
            }

            // SPEC:  Otherwise, if V is a constructed CType C<V1...Vk> and U is a constructed
            // SPEC:   CType C<U1...Uk> then an exact inference is made
            // SPEC:    from each Ui to the corresponding Vi.

            if (ExactConstructedInference(pSource, pDest))
            {
                return;
            }
            // SPEC:  Otherwise no inferences are made.
        }