我有以下方法,用于将文件名添加到List<string>
,以便将所需的文件顺序存储在Program
类中:
private static void ConvertPdfs()
{
// Get the word files FileInfo
FileInfo[] wordFileInfo = DataGrabber.GetHrWordFileInfo(sourceFolder, spSite, policyListName, sortBy);
foreach (FileInfo file in wordFileInfo)
{
// Create the ordered list - this adds each document to the list in the correct oder (sort in CAML query)
orderedListOfFileNames.Add(file.Name);
}
Converter convert = new Converter();
convert.ToPdf(wordFileInfo, targetPdf);
}
ordereListOfFileNames
是同一类中的字段:
private static List<string> orderedListOfFileNames; // Stil static ...
当方法循环使用wordFileInfo时,我看到了这个异常:
An unhandled exception of type 'System.NullReferenceException' Occurred in PdfConverter.exe
Additional information: Object reference not set to an instance of an object.
但是,我可以看到wordFileInfo
包含22个项目,所有项目都有名称。
这里的问题是orderedListOfFileNames
尚未正确初始化的事实吗?
答案 0 :(得分:3)
在使用新的operotor将值添加到列表之前,您需要实例化orderedListOfFileNames
,如下所示:
private static List<string> orderedListOfFileNames= new List<string>();
答案 1 :(得分:2)
实例化不是必需的,因此不是问题。
FileInfo[] wordFileInfo = DataGrabber.GetHrWordFileInfo(sourceFolder, spSite, policyListName, sortBy);
但是当你执行上面的代码时,wordFileInfo变为null,因此DataGrabber.GetHrWordFileInfo(sourceFolder, spSite, policyListName, sortB)
会发生一些事情。