आपको स्वतः-कार्यान्वित संपत्ति के बजाय स्पष्ट रूप से एक फ़ील्ड और "सामान्य" संपत्ति का उपयोग करना होगा:
public class Bob
{
private int value;
public int Value
{
get { return value; }
set { this.value = value; }
}
}
फिर आप फ़ील्ड को आउट पैरामीटर के रूप में पास कर सकते हैं :
Int32.TryParse("123", out bob.value);
लेकिन निश्चित रूप से, यह केवल उसी वर्ग के भीतर काम करेगा, क्योंकि क्षेत्र निजी है (और होना चाहिए!)।
गुण सिर्फ आपको ऐसा करने नहीं देते हैं। यहां तक कि VB में जहां आप संदर्भ द्वारा किसी संपत्ति को पास कर सकते हैं या इसे एक बाहरी पैरामीटर के रूप में उपयोग कर सकते हैं, वहां मूल रूप से एक अतिरिक्त अस्थायी चर है।
यदि आप के वापसी मूल्य की परवाह नहीं करते हैं TryParse
, तो आप हमेशा अपनी सहायक विधि लिख सकते हैं:
static int ParseOrDefault(string text)
{
int tmp;
int.TryParse(text, out tmp);
return tmp;
}
फिर उपयोग करें:
bob.Value = Int32Helper.ParseOrDefault("123");
इस तरह आप एकल अस्थायी चर का उपयोग कर सकते हैं, भले ही आपको कई स्थानों पर ऐसा करने की आवश्यकता हो।