9
votes

Spécifier juste un setter sur un ensemble / getter

J'utilise des getters and Setters pour créer une instance d'une classe.

est-il possible d'ajuster la valeur définie sans avoir à avoir une variable privée et le faire directement sur le type? P>

Par exemple, si ma classe est: p> xxx pré>

et je veux l'instancier faire: p>

public class Cat()
{
public String Age{get; set{ value = ConvertToHumanYears(value); }
}


1 commentaires

Cela ressemble beaucoup à VB, pourquoi étiquetez-le comme c #?


3 Réponses :


21
votes

Vous ne pouvez pas utiliser la propriété automatique pour getter et avoir une définition pour Setter.

C'est soit P>

public class Cat()
{
  private String _age;

    public String Age{
      get{
          return _age;
      }
      set{
           _age = ConvertToHumanYears(value); 
      }
    }
  }

}


2 commentaires

Ah, c'est ce que j'ai, mais j'espérais l'avoir propre sans l'ajout d'une variable privée :(


La raison en est que le compilateur crée en fait la variable privée à la volée au moment de l'exécution, vous ne pouvez donc pas le mélanger. @StackoverflowException est correct.



2
votes

Que diriez-vous de cela? XXX

Vous devez avoir le réglage, mais il est appelable uniquement à l'intérieur de la classe elle-même.

Vous pouvez ensuite créer un constructeur qui permet de définir la valeur: xxx

ou xxx


0 commentaires

0
votes

Dans ce cas, il ne sert à rien, mais j'ai eu un problème similaire où je voulais juste être prêt à être privé et à être public, au lieu de spécifier le setter que je l'ai marqué privé. Je n'ai pas maintenant pu faire cela. XXX

Parfois, plus il est évident, plus il est difficile de trouver. J'espère que cela aide quelqu'un!


0 commentaires