0
public class ChemDB : MonoBehaviour 
{
    private int i;
    void Start ()
    {
        string[] lines = System.IO.File.ReadAllLines("Assets/Scripts/Data/Database.txt");
        int perioada=0,grupa=0,nrAt=0,masa=0,valenta=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0;
        string Nume,Simbol,Tip,Stare;
        for(i=1;i<=118;i++)
        {
            Int32.Parse(lines[(i-1)*16],perioada);
            Int32.Parse(lines[1+(i-1)*16],grupa);
            Int32.Parse(lines[2+(i-1)*16],nrAt);
            Nume=lines[3+(i-1)*16];
            Simbol=lines[4+(i-1)*16];
            Int32.Parse(lines[5+(i-1)*16],masa);
            Int32.Parse(lines[6+(i-1)*16],valenta);
            Tip=lines[7+(i-1)*16];
            Stare=lines[8+(i-1)*16];
            Int32.Parse(lines[9+(i-1)*16],a);
            Int32.Parse(lines[10+(i-1)*16],b);  
            Int32.Parse(lines[11+(i-1)*16],c);
            Int32.Parse(lines[12+(i-1)*16],d);
            Int32.Parse(lines[13+(i-1)*16],e);
            Int32.Parse(lines[14+(i-1)*16],f);
            Int32.Parse(lines[15+(i-1)*16],g);

        }
    }
}

Unity C# を使用しています。「`int.Parse(string, System.IFormatProvider)' に一致する最適なオーバーロード メソッドには無効な引数があります。」というエラーが表示されます。そして、私が間違っていることを理解していません。

4

1 に答える 1

0

Int32.Parse は文字列を最初のパラメーターとして処理し、数値を int として返します。

次のように、2 番目のパラメーターとして int を格納する変数を渡します。

Int32.Parse(lines[(i-1)*16],perioada);

次のように使用する必要があります。

perioada = Int32.Parse(lines[(i-1)*16]);

2 番目の省略可能なパラメーターは、最初のパラメーターで渡される文字列の形式を定義するために使用されるため、エラーが発生するのはそのためです。しかし、int を使用しているため、型が一致しません。

于 2015-02-20T10:01:43.387 に答える