Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
get
et set
simples pour attribuer et récupérer des valeurs.
La classe Program
classe crée une instance de cette classe pour le stockage des chaînes.=>
introduit le corps de l'expression et que le mot clé get
n'est pas utilisé.get
et set
doivent être utilisés. Par exemple :get
retourne une valeur. Un accesseur set
affecte une valeur.this
est utilisé pour définir l'indexeur.value
est utilisé pour définir la valeur affectée par l'indexeur set
.TempRecord
qui représente la température, en Farenheit, enregistrée à 10 moments différents sur une période de 24 heures.
Elle contient un tableau temps de type float[]
pour stocker les valeurs de température.
En implémentant un indexeur dans cette classe, les clients peuvent accéder aux températures dans une instance TempRecord
sous la forme float temp = tr[4]
et non sous la forme float temp = tr.temps[4]
.
La notation d'indexeur simplifie non seulement la syntaxe pour les applications clientes, mais elle permet également aux autres développeurs de comprendre de façon plus intuitive
l'objectif de la classe.this
, comme dans l'exemple suivant :ref
ou out
.System.Runtime.CompilerServices.IndexerNameAttribute
, comme dans l'exemple suivant :TheItem
.
Si vous ne précisez pas le nom de l'attribut, Item
est utilisé comme nom par défaut.tempRecord[i]
.
Comme alternative à l'utilisation de l'indexeur, vous pouvez déclarer le tableau comme membre public
et accéder directement à ses membres, tempRecord.temps[i]
.Console.Write
, l'accesseur get
est appelé.
C'est pourquoi une erreur de compilation se produit s'il n'existe aucun accesseur get
.get
prend une chaîne, le nom d'un jour, et retourne l'entier correspondant.
Par exemple, "Sunday"
retourne 0
, "Monday"
retourne 1
et ainsi de suite.TempRecord
fournit une propriété Length
qui permet au code
client de vérifier l'entrée avant de la passer à l'indexeur.
Vous pouvez également placer le code de gestion des erreurs à l'intérieur de l'indexeur lui-même.
N'oubliez pas d'indiquer aux utilisateurs toutes les exceptions que vous levez dans un accesseur d'indexeur.get
et set
une accessibilité aussi restrictive que possible.
Cela est particulièrement important dans le cas de l'accesseur set
.
Employee
implémente deux interfaces, ICitizen
et IEmployee
, et que les deux interfaces ont la même signature d'indexeur,
l'implémentation de membre d'interface explicite est nécessaire. Autrement dit, la déclaration d'indexeur suivante :IEmployee
, alors que la déclaration suivante :ICitizen
.Property | Indexeur |
---|---|
Permet aux méthodes d'être appelées comme si elles étaient des membres de données publics. | Permet aux éléments d'une collection interne d'un objet d'être accessibles à l'aide de la notation de tableau sur l'objet lui-même. |
Accessible par le biais d'un nom simple. | Accessible par le biais d'un index. |
Peut être un membre statique ou un membre d'instance. | Doit être un membre d'instance. |
Un accesseur get d'une propriété n'a aucun paramètre. |
Un accesseur get d'un indexeur possède la même liste de paramètres formels que l'indexeur. |
Un accesseur set d'une propriété contient le paramètre value implicite. |
Un accesseur set d'un indexeur possède la même liste de paramètres formels que l'indexeur, outre le paramètre value. |
Prend en charge la syntaxe abrégée avec les propriétés implémentées automatiquement. | Ne prend pas en charge la syntaxe abrégée. |