自動実装されたプロパティの代わりに、フィールドと「通常の」プロパティを明示的に使用する必要があります。
public class Bob
{
private int value;
public int Value
{
get { return value; }
set { this.value = value; }
}
}
次に、フィールドをoutパラメーターとして渡すことができます。
Int32.TryParse("123", out bob.value);
しかしもちろん、フィールドはプライベートであるため、同じクラス内でのみ機能します(そしてそうあるべきです!)。
プロパティでは、これを実行できません。参照によってプロパティを渡したり、outパラメータとして使用したりできるVBでも、基本的に追加の一時変数があります。
の戻り値を気にしない場合はTryParse
、いつでも独自のヘルパーメソッドを作成できます。
static int ParseOrDefault(string text)
{
int tmp;
int.TryParse(text, out tmp);
return tmp;
}
次に、以下を使用します。
bob.Value = Int32Helper.ParseOrDefault("123");
そうすれば、複数の場所でこれを行う必要がある場合でも、単一の一時変数を使用できます。