Sie müssten explizit ein Feld und eine "normale" Eigenschaft anstelle einer automatisch implementierten Eigenschaft verwenden:
public class Bob
{
private int value;
public int Value
{
get { return value; }
set { this.value = value; }
}
}
Dann können Sie das Feld als out-Parameter übergeben:
Int32.TryParse("123", out bob.value);
Aber das funktioniert natürlich nur innerhalb derselben Klasse, da das Feld privat ist (und sein sollte!).
Eigenschaften lassen Sie dies einfach nicht zu. Auch in VB , wo Sie können eine Eigenschaft über einen Verweis oder verwenden Sie es als out - Parameter, gibt es im Grunde eine zusätzliche temporäre Variable.
Wenn Sie sich nicht für den Rückgabewert von interessieren TryParse
, können Sie jederzeit Ihre eigene Hilfsmethode schreiben:
static int ParseOrDefault(string text)
{
int tmp;
int.TryParse(text, out tmp);
return tmp;
}
Dann benutze:
bob.Value = Int32Helper.ParseOrDefault("123");
Auf diese Weise können Sie eine einzelne temporäre Variable verwenden, auch wenn Sie dies an mehreren Stellen tun müssen.