0

以下のコードで null 参照エラーが発生します。

string artistName =     mov.get_Annotation((int)QTAnnotationsEnum.qtAnnotationArtist);
string albumName =     mov.get_Annotation((int)QTAnnotationsEnum.qtAnnotationAlbum);
string songTitle =     mov.get_Annotation((int)QTAnnotationsEnum.qtAnnotationFullName);
foreach (char c in artistName)
{
    artistName = artistName.Replace("?", "");
    artistName = artistName.Replace("*", "");
    artistName = artistName.Replace("/", "");
    artistName = artistName.Replace(":", "");
}
foreach (char c in albumName)
{
    albumName = albumName.Replace("?", "");
    albumName = albumName.Replace("*", "");
    albumName = albumName.Replace("/", "");
    albumName = albumName.Replace(":", "");
}

このコードを別の人のプロジェクトからコピーしましたが、何が起こっているのかはほとんど理解していますが、エラーを理解できません。エラーは for each (char c in artistName) 行にあります。助けてくれてありがとう。

4

3 に答える 3

0

C#合体演算子の利点を提供します??。次のように使用してみてください:

string artistName = mov.get_Annotation((int)QTAnnotationsEnum.qtAnnotationArtist);
string albumName  = mov.get_Annotation((int)QTAnnotationsEnum.qtAnnotationAlbum);
string songTitle  = mov.get_Annotation((int)QTAnnotationsEnum.qtAnnotationFullName);

artistName = Regex.Replace(artistName ?? "" , @"[\*\:\/\?]" , "");
albumName  = Regex.Replace(albumName  ?? "" , @"[\*\:\/\?]" , "");
songTitle  = Regex.Replace(songTitle  ?? "" , @"[\*\:\/\?]" , "");
于 2013-08-13T06:14:52.020 に答える