我用php创建了一个代码,现在我正在尝试用C#转换它,但它无法正常工作
这是php代码:
ERROR:
connectiondb.exe
中发生了未处理的“System.NullReferenceException”类型异常其他信息:De objectverwijzing是niet op een exemplaar van een object ingesteld。
在C#中,if语句有问题,但我找不到问题。有人能帮助我吗?
答案 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
;因此你可以避免抛出异常