C# 我可以访问具有该集合集合的类吗?
我有一个拥有B类集合的a类。是否可以从该集合中的B类实例访问a类C# 我可以访问具有该集合集合的类吗?,c#,collections,C#,Collections,我有一个拥有B类集合的a类。是否可以从该集合中的B类实例访问a类 Class A { public string Something { get; set; } List<B> collection = new List<b>(); public void Add(B b) { collection.Add(b); } } Class B { public int Num { get; set; } }
Class A
{
public string Something { get; set; }
List<B> collection = new List<b>();
public void Add(B b)
{
collection.Add(b);
}
}
Class B
{
public int Num { get; set; }
}
static void Main(string[] args)
{
B b = new B();
b.Num = 5;
A a = new A();
a.Something = "Hello";
a.Add(b);
}
A类
{
公共字符串Something{get;set;}
列表集合=新列表();
公共无效添加(B)
{
收藏。添加(b);
}
}
B类
{
公共int Num{get;set;}
}
静态void Main(字符串[]参数)
{
B=新的B();
b、 Num=5;
A=新的A();
a、 Something=“你好”;
a、 添加(b);
}
有没有办法访问字符串a。对象b中的某些内容?
有没有办法访问字符串a。对象b中的某些内容?
不可以。通过以下更改,这是可能的;但请注意,这毫无意义
Class A
{
public string Something { get; set; }
List<B> collection = new List<b>();
public void Add(B b)
{
b.Master = this;
collection.Add(b);
}
}
Class B
{
public A Master {get; set;}
public int Num { get; set; }
}
static void Main(string[] args)
{
B b = new B();
b.Num = 5;
A a = new A();
a.Something = "Hello";
a.Add(b);
Console.Writeline(b.Master.Something);
}
A类
{
公共字符串Something{get;set;}
列表集合=新列表();
公共无效添加(B)
{
b、 主人=这个;
收藏。添加(b);
}
}
B类
{
公共主机{get;set;}
公共int Num{get;set;}
}
静态void Main(字符串[]参数)
{
B=新的B();
b、 Num=5;
A=新的A();
a、 Something=“你好”;
a、 添加(b);
控制台。写线(b。Master。某物);
}
B需要包含对其容器A的引用。例如:
Class B
{
public int Num { get; set; }
public A Container { get; set; }
}
然后在中的Add()方法中:
public void Add(B b)
{
collection.Add(b);
b.Container = this;
}
这是假设B只能添加到A的单个实例中。否则,您需要使用集合(如列表),并在添加/删除时相应地更新它。为什么要这样做?我也首先考虑了这个解决方案,但它有很大的缺陷。考虑创建两个<>代码> 对象,并将其中的一个代码< > b>代码>对象添加到其中。在这种情况下,
B
将只引用最后添加的代码。因此,您要么需要拥有列表主控程序
,要么重新考虑应用程序的设计,并从A
访问内容。我甚至没有涉及到删除B
scenario我没有投反对票,但尽管有他们自己所描述的问题,这个问题还是有解决方案的。