类A
{
int a;
int b;//组变量
seta();
geta();
}
有多个类A生成的变量: a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 .....;a1.b=1;
a2.b=1;
a3.b=1;
a4.b=1;
a5.b=1;a1.a=1;
a2.a=2;
a3.a=7;
a4.a=8;
a5.a=6;a6.b=2;
a7.b=3;
.......怎么用a1.seta()把b=1的所有a等于2(a2,a3,a4,a5),而a1的a等于原来的值(注意b不等于1的a6,a7...不变)就相当与古时的保甲机制,几十人为一组 当有人犯罪就把犯罪的一组全杀死,而如果有举报的那人可以活下

解决方案 »

  1.   

        public class BaoJia
        {
            static List<BaoJia> instList = new List<BaoJia>();        public BaoJia(int a, int b)
            {
                this.a = a;
                this.b = b;
                instList.Add(this);
            }        public int a;
            public int b;
            public void SetA()
            {
                foreach (BaoJia inst in instList)
                {
                    if (inst != this && inst.b == 1)
                    {
                        inst.a = 2;
                    }
                }
            }
        }测试代码        void Test()
            {
                BaoJia a1 = new BaoJia(1, 1);
                BaoJia a2 = new BaoJia(2, 1);
                BaoJia a3 = new BaoJia(4, 1);
                BaoJia a4 = new BaoJia(5, 2);
                BaoJia a5 = new BaoJia(7, 1);
                a1.SetA();
                //执行完后, 只有 a1和 a4 的值没有变
            }
    我太无聊了, 所以居然有心情做这样的题目。