我使用VS 2013和.Net Framework 4.6。我想使用新的C#6功能(例如nameof
),但我找不到它。名稱'nameof'在當前上下文中不存在
我應該使用VS 2015年?或更高的.Net框架?
我使用VS 2013和.Net Framework 4.6。我想使用新的C#6功能(例如nameof
),但我找不到它。名稱'nameof'在當前上下文中不存在
我應該使用VS 2015年?或更高的.Net框架?
是的,要使用C#6功能,您需要一個C#6編譯器。 Visual Studio 2013沒有C#6編譯器。 Visual Studio 2015確實如此。
已經有Visual Studio 2013的Roslyn預發佈版,但是他們沒有實現最終的C#6:他們實際上並沒有實現所有的功能,他們的實現與最終的C#6行爲不同。
我正在使用VS2015,更新版本2和I今天剛剛開始看到這個問題。它曾經工作。編輯:原來我的程序中有一個愚蠢的語法錯誤,並且Visual Studio感到困惑,並決定這是因爲'nameof在當前上下文中不存在'。 - 很奇怪。 – BrainSlugs83
@ BrainSlugs83 - 對我來說也是如此。下游語法錯誤(這也是一個靜態方法,不知道是否與之相關)導致nameof()無法識別。 –
是的,你需要使用Visual Studio 2015年它不是在VS 2013支持相關鏈接:https://msdn.microsoft.com/en-us/library/dn986596.aspx
你將不能夠使用C#6 VS2013。編譯器不會理解您嘗試使用的新C#6語法。 How can I add C# 6.0 to Visual Studio 2013?
在預VS2015你可以在下面的類添加到您的解決方案,並與NameOf.nameof(() =>
取代的nameof(
所有實例,如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 **。不是Microsoft.Net.Compiler。 (我不能編輯6個字符以下的解決方案) 此外,安裝後C#6.0仍然不存在於列表中。 –
如果您在Teamcity中出現此錯誤,請進行以下更改以構建步驟進行更正。
據我所知,你不能使用C#6 VS2013。您將需要升級到2015年的 – 2015-10-05 07:49:37
afaik,C#語言功能版本與Visual Studio版本攜手並進,並且不會被反向移植。 – Claies
您應該仍然可以在Visual Studio 2013中使用.Net Framework 4.6,但是如果您已經回答了您自己的問題,則需要使用Visual Studio 2015才能使用C#6. – Auguste