PowerAMC modélise les méthodes C# sous la forme d'opérations.
Pour plus d'informations sur la création et l'utilisation des opérations, voir Opérations (MOO).
Les feuilles de propriétés de méthode contiennent tous les onglets d'une feuille de propriétés d'opération standard, avec en plus un onglet C#, dont les propriétés sont répertoriées ci-dessous :
Vous modélisez des constructeurs et des destructeurs C# en cliquant sur le bouton Ajouter Constructeur/Destructeur par défaut sur l'onglet Opérations d'une feuille de propriétés de classe. Vous créez ainsi automatiquement un constructeur ayant le stéréotype Constructor, ainsi qu'un destructeur ayant le stéréotype Destructor. Le constructeur et le destructeur sont grisés dans la liste, ce qui signifie que vous ne pouvez pas modifier leur définition.
Les méthodes de classe sont réalisées par les opérations d'interface correspondantes. Pour définir la réalisation des méthodes d'une classe, vous devez utiliser le bouton A réaliser sur l'onglet Opérations d'une feuille de propriétés de classe, puis cliquer sur le bouton Réaliser pour chaque méthode à réaliser. La méthode est affichée avec le stéréotype <<Implement>>.
Vous modélisez un opérateur C# en utilisant une opération ayant le stéréotype <<Operator>>. Assurez-vous que l'opération <<Operator>> a une visibilité Public et que sa propriété Statique soit cochée.
Pour définir un opérateur externe, vous devez définir l'attribut étendu externe de l'opération à True. Les attributs étendus new, virtual et override ne sont pas admis pour les opérateurs.
L'opérateur token (par exemple +, -, !, ~, ou ++) est le nom de la méthode.
Vous modélisez un opérateur de conversion C# en utilisant une opération ayant le stéréotype <<ConversionOperator>>.
Vous devez également déclarer l'opérateur de conversion en utilisant les mots-clés explicit ou implicit. Vous définissez le mot clé de l'opérateur de conversion en sélectionnant la valeur implicit ou explicit de l'attribut étendu scope.
Dans l'exemple suivant, la classe Digit contient un opérateur de conversion explicit et un opérateur de conversion implicite :