
Chapter 17 Travailler avec C# 2.0
Evénements, indexeurs et propriétés C# 2.0
PowerAMC représente les événements, indexeurs et propriétés C# sous la forme d'attributs UML standard, dotés des propriétés supplémentaires suivantes :
- Evénements – stéréotype <<Event>> avec une ou plusieurs opérations liées représentant les gestionnaires add et/ou remove
- Indexeurs – stéréotype <<Indexer>> avec une ou plusieurs opérations liées représentant les accesseurs get et/ou set
- Propriétés – stéréotype <<Property>> avec une ou plusieurs opérations liées représentant les accesseurs get et/ou set. En outre, vous devez noter que :
- La visibilité de la propriété est définie par l'opération de l'accesseur get si elle existe, dans le cas contraire par celle de l'accesseur set.
- Lorsqu'un attribut devient une propriété, un attribut de mise en oeuvre est automatiquement créé pour stocker la valeur de la propriété. L'attribut de réalisation n'est pas persistant et a une visibilité private. Il a le stéréotype <<PropertyImplementation>> et porte le même nom que la propriété, mais commence par une minuscule. Si le nom de la propriété commence déjà par un caractère minuscule, son premier caractère sera converti en majuscule.
- L'attribut de réalisation peut être retiré pour les propriétés qui n'en n'ont pas l'usage (propriétés calculées, par exemple)
- Si l'attribut étendu booléen Extern est défini à true, aucune opération ne doit être liée à cette propriété.
- Lorsqu'une déclaration de propriété inclut un modificateur Extern, la propriété est dite propriété externe. Une déclaration de propriété externe ne fournit aucune réalisation concrète, chacune de ses déclarations d'accesseur consiste alors en un point-virgule.
Exemple d'événement
L'exemple suivant montre la classe Button, qui contient 3 événements :
Exemple de propriété
Dans l'exemple suivant, la classe Employee contient 2 propriétés. L'opération Setter a été retirée de la propriété TimeReport :
{
public class Employee
{
private int _Function;
private int _TimeReport;
// Property Function
private int Function
{
get
{
return _Function;
}
set
{
if (this._Function != value)
this._Function = value;
}
}
// Property TimeReport
private int TimeReport
{
get
{
return _TimeReport;
}
}
}
Exemples d'indexeur
Dans l'exemple suivant, la classe Person contient un attribut indexeur Item. Le paramètre utilisé pour trier la propriété est String name :
public class Person
{
private Hashtable _childAges;
// Indexer Item
private int this[String name]
{
get
{
return (int)_ChildAges[name];
}
set
{
_ChildAges[name] = value;
}
}
}
Person someone;
someone ["Alice"] = 3;
someone ["Elvis"] = 5;
Pour créer un événement, un indexeur ou une propriété :
- Ouvrez la feuille de propriétés d'un type et cliquez sur l'onglet Attributs.
- Cliquez sur le bouton Ajouter en bas de l'onglet et sélectionnez l'option appropriée.
Pour plus d'informations sur comment créer et travailler avec des attributs, voir la section "Attributs" dans le chapitre "Construction de diagrammes structurels".
Copyright (C) 2008. Sybase Inc. All rights reserved.
|
|