繁体   English   中英

避免错误:对象引用未设置为对象的实例

[英]Avoid Error: Object reference not set to an instance of an object

我有以下两个功能:

    private object[] GetFormatedDataArray(
            Dienstleistungsreservierung dlres,
            KostenstellenProvider kstProvider)
        {
            SAPKonto konto;
            try { konto = KontierungsProvider.Instance.GetSAPKonto(dlres); }
            catch { konto = new SAPKonto(); konto.KontoText = "UNBEKANNT"; }

            Kostenstelle kst = kstProvider.GetKostenstelle(dlres.Raumreservierung.Buchung);
            KostenstellenValidator.Validate(kst);

            return new object[] {

                dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.KonfStandort,
                dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner.AnsprechPartnerName,  

       ......

}

有可能的价值:

dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner

为null,因为我已经创建了一个if子句,它创建.csv文件,如果值为null或者@ = null,他应该创建文件。

使用该函数/返回该函数的值,我创建一个.csv文件。

 {
       .....
        var file = GetCsvFile(dl, accDate);
                    // CSV werden auf Platte geschrieben!
                    var csvWriter = new CSVWriter(file);
                    csvWriter.WriteLine(GetHeader());

                    foreach (Dienstleistungsreservierung dlres in dlDic[dl])
                    {
                        if (dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner == null || dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner != null)
                        {
                            csvWriter.WriteLine(GetFormatedDataArray(dlres, kstProvider));
                        }
                    }
                    csvWriter.Flush();

    ....
    }

但错误仍然存​​在? 还有其他方法可以解决吗?

if (dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner == null || 
    dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner != null)

你的if语句包含矛盾的检查。 如果dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner的值有可能为null,那么您应该检查它是否为null然后继续。 跟随之类的事情

if (dlres.Raumreservierung.VirtualRaum.Etage.Gebaeude.Partner != null)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM