尝试在C#中创建简单列表时,出现以下错误:
“功能'顶级语句'当前处于预览状态,不受支持。要使用预览功能,请使用“预览”语言版本。 [5.1]”
此时,我输入的唯一代码是:
using System;
using System.Collections.Generic;
List<string> stringList = new List<string>();
为什么我会直接使用C#的预览版,肯定列表已经使用了一段时间了?
最佳答案
您收到的错误与列表无关,而与范围有关。所以答案
surely lists have been in use for a while?
是确定的"is"。列表(或至少是数组)自C#开始以来就存在,而泛型紧随C#2.0之后,而VS2005才支持泛型(有关C#语言历史的更多信息,请参见https://docs.microsoft.com/dotnet/csharp/whats-new/csharp-version-history)。
但是,您的问题是您在类外有一个陈述。但是,类是OOP背后的非常基本的概念-一切都与类有关。以下内容(与列表无关)也将无效:
using System;
using System.Collections.Generic;
int i = 3;
如前所述,.NET中的所有内容都与类相关-没有“全局”这样的概念性内容。因此,您必须将语句移到一个类中:using System;
using System.Collections.Generic;
class MyClass
{
List<string> stringList = new List<string>();
}
这会将您的列表范围限制为MyClass
的特定实例。您可以进一步将变量的范围限制为方法甚至方法中的特定范围。有关范围的更多信息,请阅读this。在您收到的所有错误消息之后,都涉及到under discussion for C#9的新功能:
Allow a sequence of statements to occur right before the namespace_member_declarations of a compilation_unit (i.e. source file).
关于c# - 为什么在C#中创建列表会导致此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63657593/