-1

私は以下のコードを持っています:

class A { }

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

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

そして、何かを実行したい場合CurrentA(一部のプロパティを変更するなど)、インスタンスに有効になりません。変更を他のインスタンスに有効にLstClassAするにはどうすればよいですか?CurrentAA

更新 クラス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 に答える