web-dev-qa-db-fra.com

Le nom 'nameof' n'existe pas dans le contexte actuel

J'utilise VS 2013 avec .Net Framework 4.6. Je veux utiliser de nouvelles fonctionnalités C # 6 (par exemple nameof), mais je ne l'ai pas trouvé.

enter image description here

Dois-je utiliser VS 2015? Ou .Net Framework supérieur?

31
Arian

Oui, pour utiliser les fonctionnalités C # 6, vous avez besoin d'un compilateur C # 6. Visual Studio 2013 n'a pas de compilateur C # 6. Visual Studio 2015 le fait.

Il y a eu des pré-versions de Roslyn pour Visual Studio 2013, mais elles n'implémentent pas le C # 6 final: elles n'implémentent en fait pas toutes les fonctionnalités, et ce qu'elles implémentent est différent du comportement C # 6 final.

37
user743382

oui, vous devez utiliser Visual Studio 2015. Il n'est pas pris en charge dans VS 2013. Lien connexe: https://msdn.Microsoft.com/en-us/library/dn986596.aspx

6
amit dayama

Dans la version antérieure à VS2015, vous pouvez ajouter la classe suivante à votre solution et remplacer toutes les instances de nameof( Par NameOf.nameof(() => comme suggéré dans obtenir le nom d'une variable ou d'un paramètre

using System;
using System.Linq.Expressions;

namespace ICSharpCode.SharpZipLib
{
    public class NameOf
    {
        public static String nameof<T>(Expression<Func<T>> name)
        {
            MemberExpression expressionBody = (MemberExpression)name.Body;
            return expressionBody.Member.Name;
        }
    }
}
4
ajeh

Vous ne pourrez pas utiliser C # 6 dans VS2013. Le compilateur ne comprendra pas la nouvelle syntaxe C # 6 que vous essayez d'utiliser. Comment puis-je ajouter C # 6.0 à Visual Studio 2013?

4
user1269016

L'installation de ce paquet nuget l'a corrigé pour mon projet.

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

4
Paulj

Si vous obtenez cette erreur dans Teamcity, apportez les modifications suivantes à l'étape de génération pour la corriger.

  1. Ouvrez votre étape MSBuild dans teamcity
  2. Remplacez la version MSBuild par Microsoft Build Tools 2015
  3. Remplacez MSBuild ToolVersion par 14.0
2
sree
  1. Dans "Package Manager Console", exécutez "install-package Microsoft.Net.Compilers" avec votre projet respectif sélectionné.
  2. Assurez-vous que "Niveau de langage C #" est "C # 6.0" dans les paramètres de votre projet.
0
Daniel PP Cabral