2017-05-11 68 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

_there出現problem_問題是什麼構造?同時刪除C++標籤。當你有參考字段時, –

+2

不要使用struct。這可能會導致您可能不期望的奇怪行爲。使用類,而不是完美的。 –

回答

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

-I設置值,但運行程序時出現錯誤「xyx不是變量」 –

0

如果我理解正確你的問題/問題,你正在尋找一種方式在創建struct的時間來初始化變量xyx。我會添加一個構造函數到struct並初始化那裏的所有內容。這樣,你不必聲明結構,然後有另一個調用來初始化數組,只需在構造函數中完成。這樣做,可以消除這行代碼:

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

,你可以用一個調用替換它

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 - 是的,我設置的值,但是當運行程序「XY-X是一個不變量」有錯誤 –