次の宣言に問題がありました。
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];
2 番目の実験:
int thisworks = VideoFile.FRAME_SIZE;
最終的に、元の宣言をクラスのコンストラクター内に配置したところ、機能しました。
byte[] frameBuffer = new byte[VideoFile.FRAME_SIZE]; // placed in constructor
この問題を調査すると多くの結果が得られましたが、特に私の質問に答えるものはありませんでした:
名前 'controlname' は現在のコンテキストに存在しません
名前 'controlname' は現在のコンテキストに存在しません
この問題は、コンストラクターの外部で初期化にこの特定の変数を使用できないことに関連していると思いますが、これをさらに調査できる場所への参照とともに明確な答えを得たいと思います。