C# 如何使用变量公开对象数组

C# 如何使用变量公开对象数组,c#,arrays,struct,C#,Arrays,Struct,我希望下面的数组是公共的,带有两个函数的int变量。 我不知道如何把它写成一个结构。我知道这个结构可以被获取和设置,但我一直在为这个数组编写代码。很长一段时间以来,这一直困扰着我关于C OOP的问题 int pixelCount = 0 public CustomVertex.TransformedColored[] points_data = new CustomVertex.TransformedColored[pixelCoun

我希望下面的数组是公共的,带有两个函数的int变量。 我不知道如何把它写成一个结构。我知道这个结构可以被获取和设置,但我一直在为这个数组编写代码。很长一段时间以来,这一直困扰着我关于C OOP的问题

int pixelCount = 0

public CustomVertex.TransformedColored[] points_data 
                             = new CustomVertex.TransformedColored[pixelCount];
今天我的读心术有点不对劲,如果我完全弄错了,我道歉

我认为您所追求的是一个,它允许您向自己的类添加类似get/set访问的数组

public class MyClass
{
    private CustomVertex.TransformedColored[] points_data;

    public CustomVertex.TransformedColored this[int pixelCount]
    {
       get{ return points_data[pixelCount]; }
       set{ points_data[pixelCount] = value; }
    }
}
用法:

 var obj = new MyClass();
 obj[0] = some_value; //set
 var result = obj[0]; // get

不完全清楚你的问题是什么is@Jamiec是的,我试过了,但我只能修复表面问题,希望其他人能更好地理解。当我设置时,编译器抛出一个错误。var objPoints=new PointsDataClass();objPoints[0]=CustomVertex.TransformedColor[countPixels];错误1“Microsoft.DirectX.Direct3D.CustomVertex.TransformedColor”是一个“类型”,在给定的上下文中无效。您必须在
MyClass
的实例上执行此操作,而不是在类本身上。我想我知道混淆的地方。我不想要CustomVertex.TransformedColor对象的数组。我想要一个公共对象CustomVertex.TransformedColor,其中pixelCount设置CustomVertex.TransformedColoredCool的大小,很高兴您发现了问题。尝试设置时出错。无法修改“Object_Namespace.Form1.PointsDataClass.this[int]”对象点[pointCount].X=(float)(item1)的返回值;对象点[pointCount].Y=(浮点)(项2);objPoints[pointCount].Z=1.0f;objPoints[pointCount].Rhw=1.0f;objPoints[pointCount].Color=Color.White.ToArgb();请帮忙。