Microsoft.Cci.InternFactory.GetSignatureInternId C# (CSharp) Méthode

GetSignatureInternId() private méthode

private GetSignatureInternId ( CallingConvention callingConvention, IEnumerable parameters, IEnumerable extraArgumentTypes, IEnumerable returnValueCustomModifiers, bool returnValueIsByRef, ITypeReference returnType ) : uint
callingConvention CallingConvention
parameters IEnumerable
extraArgumentTypes IEnumerable
returnValueCustomModifiers IEnumerable
returnValueIsByRef bool
returnType ITypeReference
Résultat uint
    uint GetSignatureInternId(CallingConvention callingConvention, IEnumerable<IParameterTypeInformation> parameters, IEnumerable<IParameterTypeInformation> extraArgumentTypes,
      IEnumerable<ICustomModifier> returnValueCustomModifiers, bool returnValueIsByRef, ITypeReference returnType) {
      Contract.Requires(parameters != null);
      Contract.Requires(extraArgumentTypes != null);
      Contract.Requires(returnValueCustomModifiers != null);
      Contract.Requires(returnType != null);

      uint requiredParameterTypesInternedId = this.GetParameterTypeListInternId(parameters.GetEnumerator());
      uint extraArgumentTypesInteredId = this.GetParameterTypeListInternId(extraArgumentTypes.GetEnumerator());
      uint returnValueCustomModifiersInternedId = this.GetCustomModifierListInternId(returnValueCustomModifiers.GetEnumerator());
      uint returnTypeReferenceInternedId = this.GetTypeReferenceInternId(returnType);
      foreach (SignatureStore signatureStore in this.SignatureHashtable.GetValuesFor(requiredParameterTypesInternedId)) {
        if (
          signatureStore.CallingConvention == callingConvention
          && signatureStore.RequiredParameterListInternedId == requiredParameterTypesInternedId
          && signatureStore.ExtraParameterListInternedId == extraArgumentTypesInteredId
          && signatureStore.ReturnValueCustomModifiersListInteredId == returnValueCustomModifiersInternedId
          && signatureStore.ReturnValueIsByRef == returnValueIsByRef
          && signatureStore.ReturnTypeReferenceInternedId == returnTypeReferenceInternedId
        ) {
          return signatureStore.InternedId;
        }
      }
      SignatureStore signatureStore1 = new SignatureStore(callingConvention, requiredParameterTypesInternedId, extraArgumentTypesInteredId, returnValueIsByRef, returnValueCustomModifiersInternedId, returnTypeReferenceInternedId, 0, this.CurrentSignatureInternValue++);
      this.SignatureHashtable.Add(requiredParameterTypesInternedId, signatureStore1);
      return signatureStore1.InternedId;
    }