C# 为什么在C中创建列表会导致此错误?

C# 为什么在C中创建列表会导致此错误?,c#,list,compiler-errors,C#,List,Compiler Errors,尝试在C中创建简单列表时,我遇到以下错误: '功能“顶级语句”当前处于预览状态,不受支持。要使用预览功能,请使用“预览”语言版本。[5.1]' 此时,我输入的唯一代码是: using System; using System.Collections.Generic; List<string> stringList = new List<string>(); 为什么我要使用C的预览版,列表肯定已经使用了一段时间了?你不能只在顶层初始化变量,如果它是一个成员,它需要包含在

尝试在C中创建简单列表时,我遇到以下错误: '功能“顶级语句”当前处于预览状态,不受支持。要使用预览功能,请使用“预览”语言版本。[5.1]'

此时,我输入的唯一代码是:

using System;
using System.Collections.Generic;

List<string> stringList = new List<string>();

为什么我要使用C的预览版,列表肯定已经使用了一段时间了?

你不能只在顶层初始化变量,如果它是一个成员,它需要包含在类中,例如:

using System;
using System.Collections.Generic;

public class Program
{
    List<string> stringList = new List<string>();
}
或者在方法内部,如果它是局部变量

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<string> stringList = new List<string>();
    }
}

您不能仅在顶层初始化变量,如果变量是成员,则需要将其包含在类中,例如:

using System;
using System.Collections.Generic;

public class Program
{
    List<string> stringList = new List<string>();
}
或者在方法内部,如果它是局部变量

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<string> stringList = new List<string>();
    }
}

您收到的错误不是关于列表,而是关于范围。那么答案是什么呢

名单肯定已经使用了一段时间了吗

答案是肯定的。列表或至少数组从C语言诞生之初就存在,而泛型随后出现在从VS2005开始支持的C 2.0中。有关C语言历史的更多信息,请参阅

然而,您的问题是,您在类之外有一个语句。然而,类是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的特定实例。您可以进一步将变量的范围限制为方法,甚至方法中的特定范围。有关作用域的更多信息,请阅读

您收到的所有错误消息均与以下新功能相关:

允许一系列语句正好出现在 名称空间\成员\编译单元(即源)的声明 文件


您收到的错误不是关于列表,而是关于范围。那么答案是什么呢

名单肯定已经使用了一段时间了吗

答案是肯定的。列表或至少数组从C语言诞生之初就存在,而泛型随后出现在从VS2005开始支持的C 2.0中。有关C语言历史的更多信息,请参阅

然而,您的问题是,您在类之外有一个语句。然而,类是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的特定实例。您可以进一步将变量的范围限制为方法,甚至方法中的特定范围。有关作用域的更多信息,请阅读

您收到的所有错误消息均与以下新功能相关:

允许一系列语句正好出现在 名称空间\成员\编译单元(即源)的声明 文件


您试图在类之外编写代码。在.NET中没有全局概念。一切都与类有关,类是OOP的基础。因此,尽管从一开始.NET就支持列表,但类外的变量仍在开发中。上述场景顶层程序仅在C 9中受支持,目前这是一种预览功能。它计划在即将到来的11月发布。你试图在类之外编写代码。在.NET中没有全局概念。一切都与类有关,类是OOP的基础。因此,尽管从一开始.NET就支持列表,但类外的变量仍在开发中。上述场景顶层程序仅在C 9中受支持,目前这是一种预览功能。它计划在即将到来的11月发布。