web-dev-qa-db-fra.com

Déclaration de variable en ligne non compilée

Je reçois un message dans Visual Studio 2017, plus précisément, IDE0018 Variable declaration can be inlined.

J'essaie donc d'utiliser une déclaration de variable en ligne comme indiqué dans les notes de publication de visual studio 2017, mais mon projet ne peut pas être compilé. 

Il ne montre aucun message d'erreur, mais le résultat affiche "Rebuild All failed..... error CS1525: Invalid expression term 'int'

L'erreur apparaît uniquement dans la sortie, pas comme une erreur réelle dans la liste des erreurs.

Voici un exemple concret du code que j'utilise et qui échoue.

if (int.TryParse(ExpYear, out int IExpYear))
  {
    if (IExpYear < DateTime.Now.Year || IExpYear > DateTime.Now.AddYears(10).Year)
    {
      e += "Expiration Year is invalid.\n";
    }
  }
  else
  {
    e += "Expiration Year is not a number.\n";
  }

Si je retourne le changement, il compile comme prévu. Est-il possible que je n'utilise pas le compilateur c # 7 d'une manière ou d'une autre?

Je vous remercie.

Mise à jour: j'ai trouvé le paramètre de langue dans Build> Advanced et je l'ai configuré en C # 7.0. Construire le projet me donne maintenant cette erreur:

CSC: erreur CS1617: Option non valide '7' pour/langversion; doit être ISO-1, ISO-2, par défaut ou un entier compris entre 1 et 6.

34
prudan

J'ai pu résoudre ce problème en installant le package de nuget Microsoft.Net.Compilers pour v2.0.0-rc3, la seule version antérieure étant 1.3.2

Je ne comprends toujours pas pourquoi les erreurs intellisense et du compilateur seraient visibles si le compilateur installé ne le supportait pas.

36
prudan

Au cas où la réponse ci-dessus ne fonctionnerait pas pour vous, car cela ne fonctionnait pas pour moi, procédez comme suit:

Ouvrez le fichier csproj et vérifiez si le paquet suivant est référencé dans le fichier après la mise à niveau. Si oui, supprimez-le.

<Import Project="packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

Ensuite, vérifiez la "Project ToolsVersion". Il doit s'agir de 15.0, probablement de 14.0, donc vous devez changer cela.

<Project ToolsVersion="15.0" .../>

Ensuite, rechargez simplement la SOLUTION et vous êtes prêt à partir. Sachez que si vous sélectionnez "Recharger le projet", le système générera une erreur et ne le chargera pas. 

12
Dominik Litschauer

Pour définir l'utilisation du dernier compilateur C # publié:

Dans Visual Studio (j'utilise Visual Studio 2017), cliquez avec le bouton droit de la souris sur le projet et sélectionnez "Propriétés".

Sélectionnez l'onglet "Générer" dans la barre de menu de gauche

Cliquez sur le bouton "Avancé ..." dans le coin inférieur droit de la fenêtre "Construire"

Sous "Général", dans la zone de liste à droite de "Version du langage", sélectionnez "Dernière version mineure C # (dernière)"

Assurez-vous également de maintenir à jour Visual Studio IDE à l'aide du programme d'installation de Visual Studio.

0
BoiseBaked