Vous auriez à utiliser explicitement un champ et "normal" de la propriété au lieu d'une auto-mise en œuvre de la propriété:
public class Bob
{
private int value;
public int Value
{
get { return value; }
set { this.value = value; }
}
}
Ensuite, vous pouvez passer le champ comme un paramètre de sortie:
Int32.TryParse("123", out bob.value);
Mais bien sûr, cela ne fonctionne que dans la même catégorie, le domaine est privé (et doit!).
Propriétés il suffit de ne pas vous laisser faire cela. Même en VB où vous pouvez passer une propriété par référence ou l'utiliser comme un paramètre de sortie, il n'y a fondamentalement un supplément variable temporaire.
Si vous n'avez pas de soins sur la valeur de retour de l' TryParse
, vous pouvez toujours écrire votre propre méthode d'assistance:
static int ParseOrDefault(string text)
{
int tmp;
int.TryParse(text, out tmp);
return tmp;
}
Ensuite, utilisez:
bob.Value = Int32Helper.ParseOrDefault("123");
De cette façon, vous pouvez utiliser une seule variable temporaire, même si vous avez besoin de faire cela à plusieurs endroits.