c# - 在第 1 类中制作一个 2d 列表,在第 2 类中填写并在第 3 类中使用

标签 c# class uwp nested-lists

如标题所示,我已经在第 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/

相关文章:

c# - 即使我将焦点设置到控件,Windows 10 uwp 也会隐藏软键盘

c# - UWP - MVVM - 使用 ItemTemplate 按钮删除 ListView 项目

C#:创建一个可以将枚举作为 List<string> 返回的通用方法

c# - 是否有 C# 替代 Java 的 vararg 参数?

CSS 不识别类

c++ - 将现有类添加到 mfc 应用程序

c# - 如何检查 ContentPlaceHolder 是否为空?

c# - 使用 Bootstrap Datepicker 选择 future 日期并将其传递给 ASP.NET MVC Controller

具有简单类定义的 C++ 未解析外部

c# - 使用基本身份验证的 HTTP 请求始终返回 401