初始化类成员时,名称 XXX 在当前上下文中不存在

本文关键字:上下文 不存在 XXX 成员 名称 初始化 | 更新日期: 2023-09-27 18:30:30

我对以下声明有问题:

byte[] frameBuffer = new byte[VideoFile.FRAME_SIZE];

将其声明为我创建的类中的变量。 不幸的是,Visual Studio在其下方放置了一条波浪形黄线,并声明"FRAME_SIZE"在当前上下文中不存在。 波浪形的黄线困扰着我。 如果我给它一个完全不存在的名字,它会使用一条波浪形的红线,但由于它存在FRAME_SIZE所以我得到一条黄线。

FRAME_SIZEVideoFile 类中声明如下:

public static readonly int FRAME_SIZE = 2621440;

当我引用它时,它在其他情况下有效,但在这种特殊情况下不起作用。 我尝试过其他声明,这些声明不会给我可怕的黄色波浪线:

第一个实验:

    const int NEW_FRAME_SIZE = 256;
    byte[] frameBuffer2 = new byte[NEW_FRAME_SIZE];        

第二个实验:

    int thisworks = VideoFile.FRAME_SIZE;

我最终将我的原始声明放在类的构造函数中,它起作用了:

byte[] frameBuffer = new byte[VideoFile.FRAME_SIZE]; // placed in constructor

研究这个问题产生了许多结果,但没有一个特别回答我的问题:

名称"控件名称"在当前上下文中不存在

名称"控件名称"在当前上下文中不存在

名称 XXXX 在当前上下文中不存在

我认为问题与无法在构造函数之外使用此特定变量进行初始化有关,但我想得到一个明确的答案以及我可以进一步研究的参考。

初始化类成员时,名称 XXX 在当前上下文中不存在

您看到此行为是因为FRAME_SIZE是静态的,只能从静态上下文访问。构造函数可以访问FRAME_SIZE因为构造函数是在创建静态成员变量引用之前执行的。

声明为 static 的其他类将能够访问FRAME_SIZE(只要它们的访问修饰符允许)。

相关问题

MSDN 文章