#c# #list #static #filereader
Вопрос:
Я хочу создать статический список, но когда я пытаюсь прочитать из файла и присвоить спискам значение, он говорит, что ему не присвоено, поэтому его значение равно нулю.
class Log { static public Listlt;stringgt; varos; static public Listlt;intgt; tav; static public Listlt;intgt; 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])); } }
Ответ №1:
Переменная — это не объект, это просто заполнитель для объекта. Вы объявляете переменные:
static public Listlt;stringgt; varos;
Но вы никогда не инициализировали их в объект:
static public Listlt;stringgt; varos = new Listlt;stringgt;();
В качестве альтернативы вы можете инициализировать их внутри метода. Хотя, конечно, они не будут инициализированы до тех пор, пока не будет вызван этот метод.
Ответ №2:
попробуйте инициализировать метод Input() внутри
varos = new Listlt;stringgt;(); tav = new Listlt;stringgt;(); n = new Listlt;stringgt;();
или инициализируйте, когда вы объявите их
static public Listlt;stringgt; varos = new Listlt;stringgt;(); static public Listlt;stringgt; tav = new Listlt;stringgt;(); static public Listlt;stringgt; n = new Listlt;stringgt;();
Комментарии:
1. Это выглядит как правильный ответ, но этот ответ следует улучшить, объяснив, как работает ваше предложение. Например, вы присваиваете значения по мере объявления. Спасибо за ваш вклад.