您必须显式使用字段和“常规”属性,而不是自动实现的属性:
public class Bob
{
private int value;
public int Value
{
get { return value; }
set { this.value = value; }
}
}
然后,您可以将字段作为out参数传递:
Int32.TryParse("123", out bob.value);
但是,当然,这只能在同一类中使用,因为该字段是私有的(应该是!)。
属性只是不允许您执行此操作。即使在VB中,您可以通过引用传递属性或将其用作out参数,基本上也有一个额外的临时变量。
如果您不关心的返回值TryParse
,则可以始终编写自己的帮助器方法:
static int ParseOrDefault(string text)
{
int tmp;
int.TryParse(text, out tmp);
return tmp;
}
然后使用:
bob.Value = Int32Helper.ParseOrDefault("123");
这样,即使您需要在多个位置执行此操作,也可以使用单个临时变量。