私は次のクラスを持っています:
public class Red
{
public List<Blue> theList = new List<Blue>();
}
public class Blue
{
private Red origin;
public Blue(ref Red)
{
origin = Red;
}
public void SomeMethod()
{
origin.theList.Add(new Blue(ref origin));//When calling this, i get the error
}
}
今では、(何らかの理由で) ref として origin を渡すことはできませんが、すべての Blue インスタンスに Red への ref が必要であることがわかります。私はそれのライブバージョンを持つことができ、すべての Blue インスタンスが Red の現在のバージョン (コピーではない) にアクセスできるようにします。
だから私は働くために以下が必要です:
using System;
public static class Program
{
public static Main(string[] Args)
{
Red red = new Red();
red.Add(new Blue(ref red));
red.Add(new Blue(ref red));
red.[0].SomeMethod();
Console.WriteLine(red[0].origin.Count()); //Should be 2, because red was edited after the first blue instance was created
Console.ReadKey(true);
}
}