Il codice seguente comporta l' utilizzo della variabile locale non assegnata "numberOfGroups" :
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Tuttavia, questo codice funziona bene (sebbene, ReSharper dice che = 10
è ridondante):
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Mi manca qualcosa o al compilatore non piace il mio ||
?
L'ho ristretto per dynamic
causare i problemi ( options
era una variabile dinamica nel mio codice sopra). La domanda rimane ancora, perché non posso farlo ?
Questo codice non viene compilato:
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
}
Tuttavia, questo codice fa :
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
}
Non mi rendevo conto che dynamic
sarebbe stato un fattore in questo.
out
parametro. È certamente interessante considerare quale codice di supporto il compilatore dovrebbe produrre per evitare il problema, o se è anche possibile.
out
parametro come input