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)的最佳重载方法匹配'有一些无效的参数。”我不明白我做错了什么。
答案 0 :(得分:0)
Int32.Parse将字符串作为第一个参数,并将该数字作为int返回。
您正在传递变量以将int存储为第二个参数,如下所示:
Int32.Parse(lines[(i-1)*16],perioada);
它应该像这样使用:
perioada = Int32.Parse(lines[(i-1)*16]);
这就是您收到错误的原因,因为第二个可选参数用于定义第一个参数中传递的字符串的格式。但由于您使用的是int,因此类型不匹配。