Je ne sais pas pourquoi j'obtiens cette erreur, mais ce code ne devrait-il pas être compilé, car je vérifie déjà si la file d'attente est en cours d'initialisation?
public static void Main(String[] args)
{
Byte maxSize;
Queue queue;
if(args.Length != 0)
{
if(Byte.TryParse(args[0], out maxSize))
queue = new Queue(){MaxSize = maxSize};
else
Environment.Exit(0);
}
else
{
Environment.Exit(0);
}
for(Byte j = 0; j < queue.MaxSize; j++)
queue.Insert(j);
for(Byte j = 0; j < queue.MaxSize; j++)
Console.WriteLine(queue.Remove());
}
Donc, si la file d'attente n'est pas initialisée, les boucles for ne sont pas accessibles, n'est-ce pas? Comme le programme se termine déjà avec Environment.Exit (0)?
J'espère que vous pourrez me donner quelques conseils :)
Merci.
Le compilateur ne sait pas que Environment.Exit () va terminer le programme; il vous voit juste exécuter une méthode statique sur une classe. Initialisez simplement queue
à null lorsque vous le déclarez.
Queue queue = null;
Le compilateur ne sait pas que Environment.Exit () ne retourne pas. Pourquoi ne pas simplement "revenir" de Main ()?
Le compilateur sait seulement que le code est ou n'est pas accessible si vous utilisez "return". Considérez Environment.Exit () comme une fonction que vous appelez, et le compilateur ne sait pas qu'il fermera l'application.