这段代码报错说那些变量还没有赋值,我也想不通为什么

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>();