Propriété ou d'indexation ne peut être attribué à “--” il est en lecture seule
Donc j'essaye de faire passer un local de chaîne à une autre forme dans un projet c#. C'est mon code:
Formulaire 1:
...
Main frm = new Main();
frm.Passvalue = usrTxt.Text;
frm.ShowDialog();
Forme 2
...
public string Username;
public string Passvalue
{
get { return Username; }
}
J'obtiens le message d'erreur:
Propriété ou d'indexation "Principal.Passvalue" ne peut pas être attribué à "--" il est en lecture seule
Je n'ai jamais déclaré quelque chose comme ReadOnly
, personne ne sait quel est le problème ici?
- Je c'est parce que vous n'avez pas spécifié
set
propriété pourPassvalue
Vous devez vous connecter pour publier un commentaire.
Il n'a pas de setter, ce qui en fait une propriété en lecture seule, à le modifier:
D'ailleurs, cela semble un peu redondant, car vous êtes en exposant publiquement
Username
de toute façon. Il est généralement considéré comme une bonne pratique pour faire des champs de la classe de privé.Si vous voulez être en mesure de ensemble votre propriété, vous devez ajouter une ensemble gestionnaire:
Il serait plus facile si à utiliser les propriétés implémentées automatiquement tout de suite:
Votre propriété manque setter. Modifier:
Le problème, c'est que vous avez seulement une getter pour
Form2.Passvalue
, mais pas de setter. Ajouter ceci dans leForm2
:Propriété n'a pas de setter.
Ici est un code que vous pouvez utiliser pour l'Auto-mise en œuvre des getters et les setters.
Ou si vous voulez obtenir et de définir la valeur de l'Identifiant de Passvalue, vous pouvez utiliser