初始化类成员时,名称 XXX 在当前上下文中不存在
本文关键字:上下文 不存在 XXX 成员 名称 初始化 | 更新日期: 2023-09-27 18:30:30
我对以下声明有问题:
byte[] frameBuffer = new byte[VideoFile.FRAME_SIZE];
我将其声明为我创建的类中的变量。 不幸的是,Visual Studio在其下方放置了一条波浪形黄线,并声明"FRAME_SIZE"在当前上下文中不存在。 波浪形的黄线困扰着我。 如果我给它一个完全不存在的名字,它会使用一条波浪形的红线,但由于它存在FRAME_SIZE所以我得到一条黄线。
FRAME_SIZE
在 VideoFile
类中声明如下:
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 在当前上下文中不存在
我认为问题与无法在构造函数之外使用此特定变量进行初始化有关,但我想得到一个明确的答案以及我可以进一步研究的参考。
您看到此行为是因为FRAME_SIZE是静态的,只能从静态上下文访问。构造函数可以访问FRAME_SIZE因为构造函数是在创建静态成员变量引用之前执行的。
声明为 static 的其他类将能够访问FRAME_SIZE(只要它们的访问修饰符允许)。
相关问题
MSDN 文章