如标题所示,我已经在第 1 类中制作/初始化/无论什么二维列表,我用第 2 类中的内容填充它,并尝试在第 3 类中使用它的内容。
然而,在第2类中填充列表后(我已确认已填充),在调用要使用该类的第3类中的方法时,它只是空的,我不知道为什么。
1 级
class class1
{
public List<List<String>> playerInfo = new List<List<String>>();
//it's a 2D list but as far as I know that shouldn't be a problem
第 2 类
public sealed partial class class2: Page
{
class1 host = new class1();
private void joinButton_Click(object sender, RoutedEventArgs e)
{
if (host.playerInfo.Count() <= 4)
{
//fill list
到目前为止似乎一切顺利。如果我进行计数,它会显示它包含 2 个元素,很酷。
第 3 类
public sealed partial class MainPage : Page
{
GameHost host = new GameHost();
public void Init()
{
if (host.playerInfo.Count() >= 2)
{
//Do stuff
}
}
}
然而这里的列表是空的。计数仅返回 0。
这会是什么?
如果我在这里的示例不是很清楚,请告诉我,我对这个 Stack Overflow 的东西还不是很好。
最佳答案
问题是您在 MainPage
类中创建了一个新实例。此实例在列表中没有值。您可以简单地将实例作为参数传递给 Init
方法:
public sealed partial class MainPage : Page
{
public void Init(GameHost host)
{
if (host.playerInfo.Count() >= 2)
{
//Do stuff
}
}
}
如果你想在整个 MainPage
类中使用 GameHost
实例,你也可以通过构造函数传递它并像这样初始化字段:
public sealed partial class MainPage : Page
{
GameHost host;
public MainPage (GameHost _host)
{
host = _host;
}
}
现在它可以在类中使用,并具有您之前拥有的所有初始化值。
public sealed partial class MainPage : Page
{
GameHost host;
public MainPage (GameHost _host)
{
host = _host;
}
public void Init(GameHost host)
{
if (host.playerInfo.Count() >= 2) // now it should have the desired items
{
//Do stuff
}
}
}
关于c# - 在第 1 类中制作一个 2d 列表,在第 2 类中填写并在第 3 类中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42005578/