您好,
我使用了很多关键字Equals来比较变量和其他东西。
但
wines = wines.Where(d => d.Region.Equals(paramRegion)).ToList();
在数据Region为NULL时,在运行时返回错误
我不得不使用代码
wines = wines.Where(d => d.Region == paramRegion).ToList();
摆脱错误。
为什么会引起错误?
感谢。
答案 0 :(得分:3)
您不能使用null对象引用调用实例方法。在调用其实例方法之前,应检查Region是否为null。
wines = wines.Where(d => d.Region != null && d.Region.Equals(paramRegion)).ToList();
d.Region == paramRegion
(很可能)扩展为object.Equals(d.Region, paramRegion)
,静态方法在调用Equals()方法之前会检查参数是否为null。
如果您知道paramRegion
不能为空,您也可以按不同顺序编写条件。
Debug.Assert(paramRegion != null);
wines = wines.Where(d => paramRegion.Equals(d.Region)).ToList();
答案 1 :(得分:3)
基本上是
d.Region == null
然后任何方法调用,这里是 Equals(...)就会引发异常,因为它没有被初始化。
答案 2 :(得分:0)
使用可以使用:
paramRegion.Equals(d.Region)