почему он дает мне исключение NullReferenceException пока без ошибок - PullRequest
0 голосов
/ 29 марта 2019

создавая программу, пользователь может вводить слова, и он выдает акроним, и это легко, но я должен использовать словарь, а ключи должны сделать акроним, который мне дают. NullReferenceException не понимают, почему не могут видеть ноль

просто с помощью Visual Studio 2015 Я так старался, что у меня не хватило ума даже описать проблему так хорошо, извините

    private string fullSentence;
    private string[] words = new string[5];
    private Dictionary<char, string> acronymDictionary = new Dictionary<char, string>();
    public Acronym(string sentence)
    {
        fullSentence = sentence;
        string[] words = sentence.Split(' ');

    }

    public void BuildAcronym()
    {

        char[] key = new char[words.Length];
        //key = null;
        //foreach (string info in words)
        //{
            for (int i = 0; i < words.Length; i++)
            {
                key[i] = Convert.ToChar(words[i].Substring(0,1)); //this is where the problem is
            }

Я ожидаю, что он запустится, особенно если ключевые символы [] будут заполняться первой буквой каждого слова в словах [], поэтому я могу установить ключ [] в качестве ключей для словаря

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

пожалуйста, попробуйте это.

    private string fullSentence;
    private string[] words;
    private Dictionary<char, string> acronymDictionary = new Dictionary<char, string>();
    public Acronym(string sentence)
    {
        fullSentence = sentence;
        words = sentence.Split(' ');

    }

    public void BuildAcronym()
    {
        if(words != null)
        { 
        char[] key = new char[words.Length];
        //key = null;
        //foreach (string info in words)
        //{
            for (int i = 0; i < words.Length; i++)
            {
                key[i] = Convert.ToChar(words[i].Substring(0,1)); //this is where the problem is
            }
         }
     }
0 голосов
/ 29 марта 2019

words[i] может быть нулевым.

Вы можете поставить точку останова на строке, которая выбрасывает, и в окне 'Watch' проверить значение words[i].

...