Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > C# code > C# code > Reverse engineering legacy C# code > Mapping information > Generalization mapping for C# (C# code)
  
Generalization mapping for C# (C# code)
ACS generates Generalizations as base class or interface definitions, when the Generalization links two Classes, two Signals or two Interfaces.
When the base class or interface is a generic type, the type arguments are modeled through the C# Actual Parameters tag definition, which can be applied to the Generalization through the «C# Specialization» stereotype.
For example, for the Generalization shown between Classes A and B, ACS generates class B as a direct base class of class A.
ACS generates the child items, properties and tagged values of a Generalization as follows.
Child items:
A Generalization does not have any child items.
Properties:
ACS ignores the Description property of a Generalization.
ACS ignores the Name property of a Generalization.
ACS ignores the Overlapping Generalization property of a Generalization.
ACS ignores the Private Access property of a Generalization.
ACS ignores the Virtual Base Class property of a Generalization.
Tag Definitions:
If the «C# Specialization» stereotype is applied to the Generalization, you can specify type arguments for a base class or interface that is a generic type. The «C# Specialization» stereotype applies the following Tag Definitions to a Generalization:
If the base Class or Interface is a template class (generates a generic type), ACS generates the tagged value of the C# Actual Parameters tag definition within angled brackets as the type arguments for the generic type.
If the tagged value of the C# Needs Qualified Type tag definition is set to True, ACS generates the base class or Interface declaration using the base class' or interface's fully qualified name, rather than its unqualified name.