2017-05-11 4 views
1

このコードをC#言語で記述してリストまたはレコードを作成すると、レコードにはYという名前の変数とxyxという名前の配列が含まれます。問題は変数xyxを初期化する方法です。メインプログラムでリストまたはレコードの変数の宣言

public struct All_Frames 
{ 
    public int[,] Y; 

    public int xyx; 

}; 

All_Frames Frame = new All_Frames(); 
List<All_Frames> Frames = new List<All_Frames>(); 

Frame.Y = new int[width, height]; 
for (int y = 0; y < height; y++) 
    for (int x = 0; x < width; x++) 
     Frame.Y[x, y] = (int)(0.299 * Red[x, y] + 0.587 * Green[x, y]); 


Frames.Add(Frame); 

がどのように私は、変数xyxを初期化することができますか?私はそこにプログラムを実行すると、この変数

宣言を定義する際に問題が表示されますか

+2

に置き換えることができますか?また、C++タグを削除します。 –

+2

参照フィールドがある場合は構造体を使用しないでください。あなたが期待していない奇妙な行動を引き起こす可能性があります。代わりにクラスを使用してください。 –

答えて

0

問題は変数XYX

All_Frames Frame = new All_Frames(); 

Frame.Y = new int[width, height]; 
Frame.xyx = 100; // Or another value 
0

を初期化する方法あなたは、アレイでやったのと同じ方法で、あなたはメンバーXYXに直接アクセスすることができます...

Frame.xyx = 117; 
+0

値が作成された後も問題があります –

0

これは役に立ちます

Frame.Y = new int[width, height]; 
for (int y = 0; y < height; y++) 
    for (int x = 0; x < width; x++) 
    { 
     Frame.Y[x, y] = (int)(0.299 * Red[x, y] + 0.587 * Green[x, y]); 
     Frame.xyx = 1213; // Set your value here 
    } 


Frames.Add(Frame); 
+0

値が作成されても問題があります –

+0

何が問題なのですか?私はここで述べることができる、あなたの投稿を編集することを検討し、全く新しい問題が新しい質問として投稿したい場合があります。 –

+0

- 値を設定しましたが、プログラム "xyxは変数ではありません"を実行するとエラーが発生します –

0

問題/質問を正しく理解している場合は、の作成時に変数xyxを初期化する方法を探しています。私はstructにコンストラクタを追加してそこのすべてを初期化します。このようにして、構造体を宣言してから、配列を初期化するための別の呼び出しを行う必要はありません。コンストラクタですべて行います。これを行うには、このコード行排除することができます:

Frame.Y = new int[width, height]; 

を、あなたは_thereが問題である何problem_を表示され、コンストラクタの呼び出し

All_Frames Frame = new All_Frames(width, height, 1234); // or whatever value you want for xyx 

public struct All_Frames 
{ 
    public int[,] Y; 

    public int xyx; 

    public All_Frames(int width, int height, int initXyx) 
    { 
     Y = new int[width, height]; 
     xyx = initXyx; 
    } 
} 
+0

また、値が開発された後でも問題があります。 –

+0

@ ZainabJawad - あなたは何を意味するのかよくわかりません。何が問題ですか? 「開発後の問題」とはどういう意味ですか?値に直接アクセスして値を設定できます。 – pstrjds

+0

@ pstrjds-yes、私は値を設定しますが、 "xyxは変数ではありません"というプログラムを実行するとエラーが発生します。 –