निम्नलिखित कोड के परिणाम के बिना उपयोग किए गए स्थानीय वैरिएबल "numberOfGroups" :
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
हालाँकि, यह कोड ठीक काम करता है (हालाँकि, ReSharper का कहना है कि = 10
यह बेमानी है):
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
क्या मुझे कुछ याद आ रहा है, या संकलक मुझे पसंद नहीं कर रहा है ||
?
मैंने इसे dynamic
समस्याओं के कारण सीमित कर दिया है ( options
मेरे उपरोक्त कोड में एक गतिशील चर था)। सवाल अभी भी बना हुआ है, मैं ऐसा क्यों नहीं कर सकता ?
यह कोड संकलित नहीं करता है :
internal class Program
{
#region Static Methods
private static void Main(string[] args)
{
dynamic myString = args[0];
int myInt;
if(myString == null || !int.TryParse(myString, out myInt))
{
myInt = 10;
}
Console.WriteLine(myInt);
}
#endregion
}
हालाँकि, यह कोड करता है :
internal class Program
{
#region Static Methods
private static void Main(string[] args)
{
var myString = args[0]; // var would be string
int myInt;
if(myString == null || !int.TryParse(myString, out myInt))
{
myInt = 10;
}
Console.WriteLine(myInt);
}
#endregion
}
मुझे नहीं लगा कि इसमें dynamic
कोई कारक होगा।
out
परम को असाइनमेंट की गारंटी नहीं देते हैं । यह विचार करना दिलचस्प है कि समस्या से बचने के लिए कंपाइलर को किस सहायक कोड का उत्पादन करना चाहिए, या यदि संभव हो तो।
out
इनपुट के रूप में अपने परम में पारित मूल्य का उपयोग नहीं कर रहे हैं