我对以下声明有疑问:
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
研究这个问题产生了很多结果,但没有一个特别回答我的问题:
我认为这个问题与无法在构造函数之外使用这个特定变量进行初始化有关,但我想得到一个明确的答案以及我可以在哪里进一步研究的参考。