如何在c#中转换这个php if语句?

时间:2016-06-15 13:57:48

标签: c# php

我用php创建了一个代码,现在我正在尝试用C#转换它,但它无法正常工作

这是php代码:

ERROR:

  

connectiondb.exe

中发生了未处理的“System.NullReferenceException”类型异常      

其他信息:De objectverwijzing是niet op een exemplaar van een object ingesteld。

在C#中,if语句有问题,但我找不到问题。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

正如他在评论中所提到的那样,this会非常清楚地解释这一点,Letme补充说几句话。在C#中,只有在从null访问值时才会获得NullReference异常(这意味着不存在)。

考虑以下情况:

  

您正在为编译器分配工作以进行检查/迭代a   采集。当编译器要执行该过程时,他无法完成   找到您指定的位置。然后它会返回给你   如果找不到指定的东西的消息,我无法继续   那个行动。您将从编译器收到此响应消息   异常。

在您给出的示例中,您正在分配任务“迭代null的内容/在null的内存位置内搜索内容。两者都不可能,因为它们不是存在于记忆中。

为避免这种情况,您可以做的是,在访问该值之前检查null:考虑签名中的以下更改:

public bool isDeelverzamelingVan(List<int> eersteVerzameling, List<int> tweedeVerzameling)
{
    if(eersteVerzameling==null || tweedeVerzameling==null)
    {
        return false;
    }
    foreach (int element in eersteVerzameling)
    {
        if (!tweedeVerzameling.Contains(element))
        {
           return false;
        }         
    }
    return true;
}

如果集合中的任何一个为null,则输出为false;因此你可以避免抛出异常