0

Null 参照例外エラーが発生しました。これは部分文字列関数または LastIndex 関数のいずれかと関係があります。私はなぜかなり混乱しています

          String[] m_SessionNames;
          String[] filenames; //Filenames already initialized in code
          int Index = 0;
                foreach (String name in filenames)
                {
                    MessageBox.Show(filenames[index]) //Works, Displays a string that includes a '\'
                    m_SessionNames[Index] = filenames[Index].Substring((filenames[Index].LastIndexOf('\\') > 0) ? filenames[Index].LastIndexOf('\\') + 1 : 0);
                    Index++;                                                                                                                                                        
                }
4

3 に答える 3

2

m_SessionNames とファイル名はすべて既に初期化されていると言っています。

もしそうなら、あなたは持っていないはずです

文字列[] m_SessionNames; String[] ファイル名;

コードの上に。

それらはどこで初期化されますか? 他の場所で初期化されている可能性がありますが、ここでは初期化されていない 2 つの新しい配列を宣言しています。

このコードを関数内で使用している場合は、クラス レベルで m_SessionNames とファイル名を宣言してから、それらを設定します。次に、この関数で再度宣言する必要はありません。

于 2013-07-15T16:46:04.043 に答える
0

filenames[Index]nullのようです。したがって、上でメソッドを呼び出すfilenames[Index]と、NullPointerException が生成される場合があります。ファイル名がコード内ですでに初期化されている場合、その理由は である可能性があり、m_SessionNames[Index]null と評価される可能性があります。これは、m_SessionNames がコードのどこにも初期化されていないことを確認できないためです。

于 2013-07-15T16:29:54.060 に答える