1

I have this frustrating problem that I can't seem to solve.

I try to fill a TextBox with text from a public static string. But when I run the program it just shows a blank text box with nothing in it.

I don't have any errors so it's hard for me to understand what I'm doing wrong.

Here is the code I have:

public ShowMp3()
{
    InitializeComponent();
    OverzichttxtBox.Text = OverzichtMP3();
}

public static String OverzichtMP3()
{
    String overzicht = "";

    foreach (Mp3Player player in Mp3.GetPlayers())
        overzicht = overzicht + "ID: " + Convert.ToString(player.id) + "\r\n" +
                    "Merk: " + player.make + "\r\n" + "Model: " + player.model +
                    "\r\n" + "MB-size: " + player.mBSize + "\r\n" + "Prijs: " +
                    player.price + "\r\n" + "\r\n";

    return overzicht;
}

And Mp3.GetPlayers() is this:

private static ArrayList players = new ArrayList();

public static void Initialize()
{
    Mp3Player player1 = new Mp3Player(1, "GET Technologies .inc", "HF 410", 4096, 129.95M, 500);
    Mp3Player player2 = new Mp3Player(2, "Far & Loud", "XM 600", 8192, 224.95M, 500);
    Mp3Player player3 = new Mp3Player(3, "Innotivative ", "Z3", 512, 79.95M, 500);
    Mp3Player player4 = new Mp3Player(4, "Resistance S.A.", "3001", 4096, 124.95M, 500);
    Mp3Player player5 = new Mp3Player(5, "CBA", "NXT Volume", 2048, 159.05M, 500);

    players.Add(player1);
    players.Add(player2);
    players.Add(player3);
    players.Add(player4);
    players.Add(player5);
}

public static ArrayList GetPlayers()
{
    return players;
}
4

2 回答 2

3

我怀疑问题是你从来没有打电话Mp3.Initialize()。您可以将其添加到Mp3类中的静态构造函数中:

private static List<Mp3Player> players = new List<Mp3Player>();

static Mp3() 
{
    Initialize();
}

// This can be private now...
private static void Initialize()
{
     ....

请注意,您可能还想将 更改ArrayList为 a List<Mp3Player>

于 2013-11-07T19:42:22.137 回答
1

StringBuilder另外,顺便说一句,您应该String.Format尝试一下。而不是这个...

overzicht = overzicht + "ID: " + Convert.ToString(player.id) + "\r\n" +
            "Merk: " + player.make + "\r\n" + "Model: " + player.model +
            "\r\n" + "MB-size: " + player.mBSize + "\r\n" + "Prijs: " +
            player.price + "\r\n" + "\r\n";

你可以做:

StringBuilder overzicht = new StringBuilder();

overzicht.AppendLine(String.Format("ID: {0}", player.id));
overzicht.AppendLine(String.Format("Merk: {0}", player.make));
overzicht.AppendLine(String.Format("Model: {0}", player.model));
overzicht.AppendLine(String.Format("MB-size: {0}", player.mBSize));
overzicht.AppendLine(String.Format("Prijs: {0}", player.price));

return overzicht.ToString();

更容易阅读;)

我的 String.Format 在这里并没有那么引人注目......但如果这一切都在一条线上,它会更有用:

return String.Format("ID:{0}, Merk:{1}, Model:{2}, MB-size:{3}, Prijs:{4}",
                     player.id, player.make, player.mode, 
                     player.mBSize, player.price);
于 2013-11-07T19:51:13.840 回答