【发布时间】:2016-11-02 15:58:03
【问题描述】:
所以,这与我昨晚就同一代码部分提出的问题有关 - 问题本身不是重复的。
在以下代码中,DamageTypeArray 中的int[] 将始终是int[12]。有没有办法在类中指定它以确保它始终是我需要的长度?
public class DamageVehicle
{
public int DVehicleID {get; set;}
}
public class DamageTypeArray
{
public int[] DTypeArray {get; set;}
}
public class DamagePackage
{
DamageVehicle dv;
DamageTypeArray dta;
DamagePackage dp;
}
对于具有DamagePackage 实例的对象,我可以这样引用它吗:
DamagePackage dp = new DamagePackage();
dp.dta[0] = 15;
dp.dta[1] = dp.dta[0] - 5;
如果没有,我可以使用什么方法以这种方式访问固定长度的数组?
【问题讨论】:
-
使用集合代替。
-
请改用
List<T>。如果您确实需要强制执行大小约束,您可以编写一个继承自List<T>的FixedLengthList<T>类,在其构造函数中获取大小,并在 Add、Remove、AddRange、RemoveAt 等上抛出异常。 -
在类构造函数中初始化你的
DTypeArray。 -
我喜欢收藏,但在这种情况下,它们并不能真正实现我想要完成的工作。我可以让它们工作,但它们也不能正常工作。最后,会有等同于每个位置的常量,所以我会调用
dp.dta[TEST_CASE]或类似的方法,如果将对象传递给另一个actor,这些常量有时会被修改。 -
@Pikoh - 我试图这样做,但有编译器异常。不能说我在工作时手头上有什么,但它根本不合适。