这段代码报错说那些变量还没有赋值,我也想不通为什么
This piece of code gets an error that those variables haven't been assgined to, and I can't figure out why
我想创建一个静态列表,但是当我尝试从文件中读取并给列表赋值时,它说它还没有被赋值,所以它的值为空。
class Log
{ static public List<string> varos;
static public List<int> tav;
static public List<int> n;
public void Input()
{
var sr = new StreamReader("vartav.txt");
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
string[] seged = s.Split(' ');
Log.varos.Add(seged[0]);
Log.tav.Add(Convert.ToInt32(seged[1]));
}
}
一个变量不是一个对象,它只是一个对象的占位符。您正在声明变量:
static public List<string> varos;
但你从未将它们初始化为对象:
static public List<string> varos = new List<string>();
您也可以在方法中初始化它们。当然,在调用该方法之前它们不会被初始化。
尝试在 Input() 方法中初始化
varos = new List<string>();
tav = new List<string>();
n = new List<string>();
或在声明时初始化 em
static public List<string> varos = new List<string>();
static public List<string> tav = new List<string>();
static public List<string> n = new List<string>();
我想创建一个静态列表,但是当我尝试从文件中读取并给列表赋值时,它说它还没有被赋值,所以它的值为空。
class Log
{ static public List<string> varos;
static public List<int> tav;
static public List<int> n;
public void Input()
{
var sr = new StreamReader("vartav.txt");
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
string[] seged = s.Split(' ');
Log.varos.Add(seged[0]);
Log.tav.Add(Convert.ToInt32(seged[1]));
}
}
一个变量不是一个对象,它只是一个对象的占位符。您正在声明变量:
static public List<string> varos;
但你从未将它们初始化为对象:
static public List<string> varos = new List<string>();
您也可以在方法中初始化它们。当然,在调用该方法之前它们不会被初始化。
尝试在 Input() 方法中初始化
varos = new List<string>();
tav = new List<string>();
n = new List<string>();
或在声明时初始化 em
static public List<string> varos = new List<string>();
static public List<string> tav = new List<string>();
static public List<string> n = new List<string>();