-1

我有以下代码:

class A { }

class B
{
    public List<A> LstClassA;
    public static A CurrentA;

    public void AddA(A a)
    {
        LstClassA.Add(a);
        CurrentA = a;
    }
}

而当我想做一些事情时CurrentA(比如改变一些属性),它不会对instance in 生效LstClassA,我怎样才能使改变对其他instanceCurrentA生效?A

更新 B 类是:

class B
{
    public List<A> LstClassA;
    public static A CurrentA;

    public void AddA(A a)
    {
        LstClassA.Add(a);
    }
}

我只想将当前正在处理的项目存储在静态成员中以便于操作:D

更新 2

例如,我有class Project这样的:

class Project
{
}

class Solution(其中包含更多项目)

class Solution
{
public List<Project> LstProject;
public static Project CurrentProject;
}

以及代码中的一些地方:

Project prj = new Project()
sol.LstProject.Add(prj);

Solution.CurrentProject = prj;

问题是我所做的CurrentProject并没有使列表中的实例更改为

4

1 回答 1

0

我认为以下将大致是您想要的(不是静态的,但是您确实已经有实例可以调用 Add,不是吗):

public A CurrentA {
  get { return LstClassA.LastOrDefault(); }
}

我完全同意您的笑脸,即为“轻松操作”制作静态字段没有多大意义(除非我读错了您的笑脸)。“随机”更改的静态字段是长时间调试会话的良好来源。

于 2012-11-26T16:56:28.057 回答