Comment définir get et set pour un tableau de données?
Je fais une classe Customer
qui a les données suivantes membres et les propriétés:
private string customerName;
private double[] totalPurchasesLastThreeDays; //array of 3 elements that will hold the totals of how much the customer purchased for the past three days i.e. element[0] = 100, element[1] = 50, element[2] = 250
public string CustomerName
{
get { return customerName; }
set { customerName = value; }
}
public double[] TotalPurchasesLastThreeDays
{
?
}
Comment puis-je définir le get et set pour la matrice de données de membre?
Exactement de la même manière.
Il semble étrange pour moi d'inclure les achats dans le cadre de la Clientèle de la classe elle-même.
Il semble étrange pour moi d'inclure les achats dans le cadre de la Clientèle de la classe elle-même.
OriginalL'auteur Bob | 2012-03-17
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un auto-propriété:
Ou si vous le souhaitez:
Et puis dans le constructeur, vous pouvez définir des valeurs par défaut:
OriginalL'auteur Jason Evans
Voulez-vous un indexeur?
Parce que sinon, la question semble un peu bizarre, étant donné que vous avez déjà mis en œuvre une propriété dans votre code et sont évidemment capables de le faire.
Les indexeurs n'ai pas de nom, parce que vous l'indice de l'objet directement. Donc, vous devez supprimer
Purchases
afin de rendre votre code de la compilation. En fait, les indexeurs fonctionne comme ceci:myCustomer[index]
, pas de cette façon:myCustomer.Purchases[index]
N'hésitez pas à modifier. J'ai regarder la syntaxe à chaque fois de toute façon.
De sorte que si nous avons deux ou plusieurs tableaux et besoin de cela pour chacun d'eux?
OriginalL'auteur Joey
Si vous voulez que la matrice soit réglable de l'extérieur, de toute façon, le plus commode est d'utiliser l'auto propriété et juste enlever le domaine privé que vous avez déjà:
OriginalL'auteur BrokenGlass
On pourrait de cette, (je suppose que le but de cela est de sorte que le tableau ne peut plus être modifié après réglage):
Mais... voulez-vous vraiment faire cela? Il peut être plus commode et intuitif de faire la même chose, comme vous le feriez habituellement.
OriginalL'auteur Ry-
Vous pourriez vous poser cette question parce que vous pensez que le fait de confier à votre tableau est différente qu'une simple variable?
Dans ce cas, vous devez comprendre que lorsque vous appelez
TotalPurchasesLastThreeDays[3] = 14.0
vous êtes en fait en utilisant de la lecture et de ne pas le setter. Le setter est utilisé pour modifier le tableau lui-même et non pas les valeurs qu'il contient. Afin de codage les getter et setter n'est pas différent avec un tableau qu'avec tout autre type de variable.OriginalL'auteur dee-see
Si vous voulez permettre cela:
mais pas cette:
Définir uniquement de la lecture c'est à dire :
Au lieu de cela, si vous avez besoin de changer le tableau de l'instance de l'extérieur de la classe, il suffit de suivre les autres réponses.
OriginalL'auteur digEmAll
OriginalL'auteur ionden
OriginalL'auteur Royi Namir
changement
variableIndex
àindex
et compiler amende. C'est l'un des quelques réponses qui protège le sous-jacent tableau à partir été changé pour d'autres longueurs, dans le cas où vous souhaitez appliquer une longueur fixe de 3 qui a été mentionné, il int question.OriginalL'auteur nidhin