CSharpSourceEmitter.SourceEmitter.PrintBaseTypesAndInterfacesList C# (CSharp) Method

PrintBaseTypesAndInterfacesList() public method

public PrintBaseTypesAndInterfacesList ( ITypeDefinition typeDefinition ) : void
typeDefinition ITypeDefinition
return void
    public virtual void PrintBaseTypesAndInterfacesList(ITypeDefinition typeDefinition) {
      IEnumerable<ITypeReference> basesList = typeDefinition.BaseClasses;
      IEnumerable<ITypeReference> interfacesList = typeDefinition.Interfaces;

      bool fFirstBase = true;
      if (typeDefinition.IsEnum && typeDefinition.UnderlyingType.TypeCode != PrimitiveTypeCode.Int32) {
        PrintBaseTypesAndInterfacesColon();
        PrintBaseTypeOrInterface(typeDefinition.UnderlyingType);
        fFirstBase = false;
      }

      foreach (ITypeReference baseTypeReference in basesList) {
        if (fFirstBase && TypeHelper.TypesAreEquivalent(baseTypeReference, typeDefinition.PlatformType.SystemObject))
          continue;

        if (fFirstBase && TypeHelper.TypesAreEquivalent(baseTypeReference, typeDefinition.PlatformType.SystemValueType))
          continue;

        if (TypeHelper.TypesAreEquivalent(baseTypeReference, typeDefinition.PlatformType.SystemEnum))
          continue;

        if (fFirstBase)
          PrintBaseTypesAndInterfacesColon();
        else
          PrintBaseTypesAndInterfacesListDelimiter();

        PrintBaseTypeOrInterface(baseTypeReference);
        fFirstBase = false;
      }

      foreach (ITypeReference interfaceTypeReference in interfacesList) {
        if (fFirstBase)
          PrintBaseTypesAndInterfacesColon();
        else
          PrintBaseTypesAndInterfacesListDelimiter();

        PrintBaseTypeOrInterface(interfaceTypeReference);
        fFirstBase = false;
      }
    }
SourceEmitter