Le code suivant donne comme résultat utilisation d'une variable locale non affectée "numberOfGroups". :
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Cependant, ce code fonctionne bien (bien que, ReSharper dit le = 10
est redondant) :
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
J'ai raté quelque chose, ou bien le compilateur n'aime pas mes ||
?
J'ai réduit la liste à dynamic
causant les problèmes ( options
La question reste posée, pourquoi je ne peux pas faire ça ?
Ce code n'a pas compiler :
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
}
Cependant, ce code fait :
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
}
Je n'avais pas réalisé dynamic
serait un facteur à prendre en compte.