C# 处理对象时快速更改一个字母的方法

C# 处理对象时快速更改一个字母的方法,c#,object,shortcut,public,C#,Object,Shortcut,Public,我试着寻找一个解决方案,但由于非常新,我甚至不知道从哪里开始 在public partial类中,我需要生成26行代码,这些代码看起来像下面的代码,但ObjC的C部分将从A~Z更改。有没有一种方法可以有效地做到这一点,而无需再次复制和粘贴这些行,并将每个C更改26次? 我知道我可以花时间来做这件事(复制粘贴26次),但我也有一种感觉,那就是一定有更好的方式来四处走动 public int[] dn_objC= new int[30]; public float[] dtime_objC = n

我试着寻找一个解决方案,但由于非常新,我甚至不知道从哪里开始

在public partial类中,我需要生成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等。

第一个改进是使用和/或字典

但如果您首先创建一个自定义类来保存所有数据,则会更好:

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];
...

为了获得更大的灵活性,请使用
List
s而不是数组。

使用。你说的是编辑器还是代码?我不知道你说的编辑器是什么意思。如果Visual Studio有解决方案,我们将不胜感激。我的意思是使用VS编辑器,可能使用宏。。但是你不是故意的。实例化对象是什么意思?与默认设置为0(或false)的值类型(
int
float
bool
)不同,对象的默认值为
null
。只有创建一个关键字为.Okay的实例,才能使用它们。我不知道把var objects=newdictionary()放在哪里;对象['A']=新对象数据[30];nor对象['A'][0]=新的ObjectData();//请注意,您必须先实例化对象!对象['A'][0]。dn=14;Console.WriteLine(对象['A'][0].dn);当我把它们放在前一个代码所在的位置时,出现了一个错误。我为第一段代码创建了一个单独的类。这取决于您需要它们的位置。通常,
对象
是类的一个字段,您可以将其实例化为声明的一部分。代码的其余部分是您实际初始化数据的地方。我已经移动了代码,现在,
private void end_mes_单击(object sender,EventArgs e){var objects=new Dictionary();objects['A']=new ObjectData[30];objects['A'][0]=new ObjectData();objects['A'][0].dn=14;Console.WriteLine(对象['A'][0].dn);物体A.文本=”物体A";             物体B.文本=”物体B“flag\u object=0;now\u status.Text=”測定モード終了“MessageBox.Show(dx_objA[1].ToString());}
当前上下文中仍然不存在dx_objA,为什么?
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);