-3

私はこれを1時間理解しようとしていて、解析を試みましたが、うまくいきませんでした. 以下のコードは、リーグデータ[2]とリーグデータ[3]を変換する2行で、入力文字列が正しい形式ではありませんというエラーを表示し続けます。簡単なものがありませんか?

  public static void readLeagues(string theFile, ArrayList allLeagues)
    {
        StreamReader inLeagues = null;
        bool anyMoreLeagues = false;
        string[] leagueData = new string[frmLeagues.numLeagueItems];
        string[] fixtureData = new string[frmLeagues.numFixItems];
        Leagues tempLeague;
        Fixtures tempFix;
        int numFixInLeague, leaguePrize;

        if (fileOpenForReadOK(theFile, ref inLeagues))
        {

            anyMoreLeagues = getNext(frmLeagues.numLeagueItems, inLeagues, leagueData);

            while (anyMoreLeagues == true)
            {
               leaguePrize = Convert.ToInt32(leagueData[2]);
               numFixInLeague = Convert.ToInt32(leagueData[3]);


                tempLeague = new Leagues(leagueData[0], leagueData[1],numFixInLeague,
                                        leaguePrize);

                for (int i = 0; i < numFixInLeague; i++)
                {
                    getNext(frmLeagues.numFixItems, inLeagues, fixtureData);
                    tempFix = new Fixtures(fixtureData[0], fixtureData[1], fixtureData[2]
                                            , fixtureData[3], fixtureData[4]);
                    tempLeague.addFixturesToLeague(tempLeague.getLeagueFixtures(),tempFix);

                }

                allLeagues.Add(tempLeague);
                anyMoreLeagues = getNext(frmLeagues.numLeagueItems, inLeagues, leagueData);
            }
        }
        if (inLeagues != null) inLeagues.Close();

以下はリーグクラスのコードですありがとう、ジャック

クラスリーグ{プライベート文字列LeagueName; プライベート文字列 LeagueSponsor; private int LeaguePrize; プライベート int LeagueNumFixtures; ArrayList LeagueFixtures;

    public Leagues(string inLeagueName, string inLeagueSponsor, int inLeaguePrize,
                    int inLeagueNumFixtures)
    {
        LeagueName = inLeagueName;
        LeagueSponsor = inLeagueSponsor;
        LeaguePrize = inLeaguePrize;
        LeagueNumFixtures = inLeagueNumFixtures;
        LeagueFixtures = new ArrayList();

    }
    public ArrayList addFixturesToLeague(ArrayList fixturesSoFar, Fixtures theNewFixture)
    {
        fixturesSoFar.Add(theNewFixture);
        LeagueNumFixtures = fixturesSoFar.Count;
        return fixturesSoFar;

    }
    public void setLeagueName(string inLeagueName)
    {
        LeagueName = inLeagueName;
    }
    public void setLeagueSponsor(string inLeagueSponsor)
    {

        LeagueSponsor = inLeagueSponsor;
    }
    public void setLeaguePrize(int inLeaguePrize)
    {
        LeaguePrize = inLeaguePrize;
    }
    public void setLeagueNumofFixture(int inLeagueNumFixtures)
    {
        LeagueNumFixtures = inLeagueNumFixtures;
    }
    public void setLeagueFixtures(ArrayList inLeagueFix)
    {
        LeagueFixtures = inLeagueFix;
    }
    public string getLeagueName()
    {
        return LeagueName;
    }
    public string getLeagueSponsor()
    {
        return LeagueSponsor;
    }
    public int getLeaguePrize()
    {
        return LeaguePrize;
    }
    public int getLeagueNumFixtures()
    {
        return LeagueNumFixtures;
    }
    public ArrayList getLeagueFixtures()
    {
        return LeagueFixtures;
    }
}

}

4

1 に答える 1

1

LeagueData[2] と LeagueData[3] が null でないことを確認してから、TryParse を実行します。また、最初に LeagueData が null または空でないことを確認する必要があります。私はリーグデータが文字列の配列であると仮定しています

var prize = leagueData[2];
int outNum;
int leaguePrize = Int.TryParse(prize, out outNum)? outNum : 0;
  • phoogのコメントごとにいくつかの小さな編集
于 2013-04-12T22:16:51.833 に答える