Я пытаюсь прочитать ввод с консоли и создать объекты моего собственного типа данных Word
и добавить их в список . Однако каждый раз, когда я добавляю новый, все предыдущие заменяются.
L oop:
while (!QuitInput(wordInput.ToLower()))
{
...handle invalid input...
else
{
try
{
ReadWordFromConsole(languages[0], languages[1], wordInput);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
wordInput = Console.ReadLine().Trim(' ', ';');
}
Метод:
private static void ReadWordFromConsole(string language1, string language2, string input)
{
var splitInput = input.Split(';');
for (int i = 0; i < splitInput.Length; i++)
splitInput[i] = splitInput[i].Trim(' ');
if (splitInput.Length < 2)
{
if (!input.Contains(';'))
throw new ArgumentException("Separate with ';'");
throw new ArgumentException("Invalid input. 'h' for help.");
}
var translationList = new List<string>();
for (int i = 1; i < splitInput.Length; i++)
translationList.Add(splitInput[i]);
var word = new Word(language1, language2, splitInput[0], translationList);
_loadedWords.Add(word);
}
Слово класс:
private static string _language;
public Word(string language, string translationLanguage, string text, List<string> translations)
{
Language = language;
TranslationLanguage = translationLanguage;
Text = text;
Translations = translations;
}
public string Language
{
get
{
return _language;
}
set
{
if (string.IsNullOrEmpty(value))
throw new ArgumentException("Language cannot be empty");
_language = value;
}
}
...
Глобальный список, объявленный в том же классе, что и ReadWordFromConsole
:
private static List<Word> _loadedWords = new List<Word>();
При исследовании я обнаружил, что в некоторых сообщениях нельзя использовать один и тот же экземпляр объекта в oop. Но разве я не создаю новый каждый раз, когда вызывается ReadWordFromConsole
?
Что я должен изменить, чтобы он работал и не заменял предыдущие слова?