我已经尝试过寻找解决方案,但是我很新,我甚至不知道从哪里开始。
在公共部分类中,我需要制作26行代码,如下所示,但ObjC的C部分将从A~Z改变。有没有办法有效地做到这一点,没有复制和再次粘贴行,并改变每个C有26次? 我知道我可以花时间做这件事(复制和粘贴26次),但我也觉得必须有更好的方法来解决。
public int[] dn_objC= new int[30];
public float[] dtime_objC = new float[30];
public float[] ddtime_objC = new float[30];
public int[] dx_objC = new int[30];
public int[] dy_objC = new int[30];
public float[] dxm_objC = new float[30];
public float[] dym_objC = new float[30];
public float[] dsm_objC = new float[30];
public float[] dvx_objC = new float[30];
public float[] dvy_objC = new float[30];
public float[] dv_objC = new float[30];
现在代码没有问题,我只是想知道一个快速的方法来改变C来说A,B,D等。
答案 0 :(得分:2)
第一项改进是使用multidimensional arrays和/或字典。
但是如果你先创建一个自定义类来保存所有数据会更好:
public class ObjectData {
public int dn { get; set; }
public float dtime { get; set; }
public float ddtime { get; set; }
public int dx { get; set; }
public int dy { get; set; }
public float dxm { get; set; }
public float dym { get; set; }
public float dsm { get; set; }
public float dvx { get; set; }
public float dvy { get; set; }
public float dv { get; set; }
}
然后像这样使用它:
var objects = new Dictionary<char, ObjectData[]>();
objects['A'] = new ObjectData[30];
...
要获取或设置特定值,您可以执行以下操作:
objects['A'][0] = new ObjectData(); // note that you have to instantiate the object first!
objects['A'][0].dn = 14;
Console.WriteLine(objects['A'][0].dn);
为了进一步提高灵活性,请使用List
而不是数组。