是所有的C1 C2都要共享同一个a1吗?还是只有C3中的C1 C2要共享同一个a1,
如果是第二种,a1直接定义在C3中就行了
如果是第一种,不适用静态全局的话,考虑一下单例模式,找个类把a1封装起来,然后C1,C2操纵这个实例
搞不懂是啥需求不让是全局变量啊
可以是全局。但是不能是静态的。因为C3有多个实例。不能共用一个全局变量。
每个C3中的C1和C2共享一个a1.
还有一个问题是。C1会创建多个C2实例。C1和C2的所有实例都公用a1。
@😀明笔记:
C3有多个实例。不能共用一个全局变量。
每个C3中的C1和C2共享一个a1.
C1会创建多个C2实例。C1和C2的所有实例都公用a1。
这不就是第一种吗
在C3实例的作用域中,所有C1 C2 用同一个a1,你把a1定义成C3的一个字段或者属性就行了啊
@猝不及防: 可是实例C3的对象,C1和C2不可见啊。怎么访问。?a1这个属性又不能命名为静态的前提下。
@😀明笔记:
如果你的A1是引用类型的,好办了
创建C1,C2的时候
在C3:
C1.A1=THIS.A1
在C1:
C2.A1=THIS.A1
然后C1和C2操作自己的A1就好了,反正都是同一个实例
如果是值传递的
老老实实在C1,C2中加一个C3类型的变量
然后每次C3.A1=XXX;
@猝不及防: 这个引用类型中,为什么字段可以引用。属性就不可以?
@😀明笔记: 字段属性都可以,区别是值传递的话你要构建C3类型的字段或者属性
@猝不及防: 引用要使用ref和out吧。这两个不能应用在属性。之前就是用属性。所有解决不了问题。现在改了字段就可以了。。-
@😀明笔记: 牛逼,下次给点分
@猝不及防: 感谢大佬相助