Sto usando VS 2013 con .Net Framework 4.6. Voglio utilizzare le nuove funzionalità di C# 6 (ad esempio nameof
). Ma non sono riuscito a trovarlo.Il nome 'nameof' non esiste nel contesto corrente
Devo usare VS 2015? O superiore .Net Framework?
Sto usando VS 2013 con .Net Framework 4.6. Voglio utilizzare le nuove funzionalità di C# 6 (ad esempio nameof
). Ma non sono riuscito a trovarlo.Il nome 'nameof' non esiste nel contesto corrente
Devo usare VS 2015? O superiore .Net Framework?
Sì, per utilizzare le funzionalità C# 6, è necessario un compilatore C# 6. Visual Studio 2013 non ha un compilatore C# 6. Visual Studio 2015 lo fa.
Ci sono state pre-release di Roslyn per Visual Studio 2013, ma non implementano il C# finale: in realtà non implementano tutte le funzionalità e ciò che implementano è diverso dal comportamento finale del C# 6 .
Sto usando VS2015, aggiornamento 2 e I Ho appena iniziato a vedere questo problema oggi. Funzionava. EDIT: Si è scoperto che c'era uno stupido errore di sintassi nel mio programma e Visual Studio si è confuso e ha deciso che era perché 'nameof non esiste nel contesto corrente'. -- Molto strano. – BrainSlugs83
@ BrainSlugs83 - è stato anche per me. Un errore di sintassi a valle (anche questo era in un metodo statico, mi chiedo se è collegato) ha causato il mancato riconoscimento di nameof(). –
sì è necessario utilizzare Visual Studio 2015. Non è supportato in VS 2013. Link correlati: https://msdn.microsoft.com/en-us/library/dn986596.aspx
Non sarà in grado di utilizzare C# 6 in VS2013. Il compilatore non comprenderà la nuova sintassi C# 6 che stai tentando di utilizzare. How can I add C# 6.0 to Visual Studio 2013?
In pre-VS2015 è possibile aggiungere la seguente classe alla soluzione e sostituire tutte le istanze di nameof(
con NameOf.nameof(() =>
come suggerito in get name of a variable or parameter
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;
}
}
}
È Microsoft.Net.Compiler ** s **. Non Microsoft.Net.Compiler. (Non posso modificare la soluzione inferiore a 6 caratteri) Inoltre, dopo l'installazione, C# 6.0 non è ancora presente nell'elenco. –
Se si verifica questo errore in Teamcity, apportare le seguenti modifiche al passo di creazione per correggerlo.
Per quanto ne so, non è possibile utilizzare C# 6 a VS2013. È necessario eseguire l'aggiornamento al 2015 –
afaik, le versioni di C# Language Feature vanno di pari passo con le versioni di Visual Studio e non vengono ripristinate. – Claies
Dovresti comunque essere in grado di utilizzare .Net Framework 4.6 in Visual Studio 2013, ma come hai già risposto alla tua domanda, hai bisogno di Visual Studio 2015 per utilizzare C# 6. – Auguste