Int32.Parse C#错误

时间:2015-02-20 09:48:35

标签: parsing int32

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)的最佳重载方法匹配'有一些无效的参数。”我不明白我做错了什么。

1 个答案:

答案 0 :(得分:0)

Int32.Parse将字符串作为第一个参数,并将该数字作为int返回。

您正在传递变量以将int存储为第二个参数,如下所示:

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

它应该像这样使用:

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

这就是您收到错误的原因,因为第二个可选参数用于定义第一个参数中传递的字符串的格式。但由于您使用的是int,因此类型不匹配。