在列表或记录中声明变量

时间:2017-05-11 11:53:12

标签: c# arrays

我用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

4 个答案:

答案 0 :(得分:0)

  

问题是如何初始化变量xyx

All_Frames Frame = new All_Frames();

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

答案 1 :(得分:0)

与数组一样,您可以直接访问成员xyx ...

Frame.xyx = 117;

答案 2 :(得分: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);

答案 3 :(得分:0)

如果我正确理解您的问题/问题,那么您正在寻找一种在创建xyx时初始化变量struct的方法。我会在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;
    }
}