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 返回。

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

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

它应该像这样使用:

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

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

于 2015-02-20T10:01:43.387 回答