例如...我有一个名为的类DisplayableUnit
。
代码中到处都有许多不同的变量指向该类的实例,例如:
List<DisplayableUnit> known_units;
DisplayableUnit CopiedUnit;
DisplayableUnit EditingUnit;
DisplayableUnit CurrentUnit;
等等等
然后,例如我需要更换一些instanceA与新创建instanceB。是否有可能重写的类实例字节instanceA,所以以前指向到其他变量instanceA将指向instanceB不改变自己的指针?
我需要这样做,因为我有很多指向实例的变量,所以真的很难更改所有实例。
我的理想方法是: known_units[5] = instanceB; //and after that all other vars will lead onto instanceB
我提出两种可能的解决方案。
首先是自动修改原始对象,例如使用http://valueinjecter.codeplex.com/,从而不必处理很多字段。
public void Change(DisplayableUnit other)
{
this.InjectFrom(other);
}
第二个是使所有变量都指向DisplayableUnit类型的包装器,并通过Value属性访问内部对象。
public class Wrapper<T>
{
public T Value { get; set; }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句