当我在null上调用扩展方法时,我总是需要抛出ArgumentNullException
吗? (扩展方法Enumerable
throw ArgumentNullException
。)我想澄清一下。如果答案是“是”和“否”,请提供这两种情况。关于扩展方法
Q
关于扩展方法
0
A
回答
5
如果参数为null
且您不支持该条件,则需要抛出它。如果这不是问题,则不需要抛出异常。有人可能会预计在大多数的情况下,this
参数的null参数将是一个不受支持的条件,但决不是总是的情况。
在扩展方法中,与传统方法相比,引发此异常(以及用于空检查)的需求没有区别。
2
我见过通常被定义为扩展方法这三种方法:
public static bool IsNull(this object item)
{
return item == null;
}
,并像使用:
object o = null;
if (o.IsNull())
return;
因此,在这种特殊情况下,它是没有意义的,如果丢参数为null。扩展方法与其他方法没有区别,只是语法更有趣。
相关问题
- 1. 关于扩展Scala方法签名
- 2. Intellisense用于扩展方法?
- 3. 关于扩展LinearLayout
- 4. 扩展方法
- 5. 扩展方法
- 6. 实例方法,named_scope或关联扩展
- 7. 扩展方法隐藏相关性吗?
- 8. 关于checkstyle扩展的junit
- 9. 关于Url扩展的intellisense.Content
- 10. 关于扩展DataMediaSource的Java.Lang.NoClassDefFoundError
- 11. 关于magento扩展Unirgy_StoreLocator
- 12. 关于javascript扩展函数
- 13. 关于类的扩展
- 14. 关于扩展源代码
- 15. AutoMapper展开扩展方法
- 16. 扩展方法不适用于接口
- 17. 扩展方法不适用于子类?
- 18. 可扩展枚举的扩展方法
- 19. 扩展类成员的扩展方法?
- 20. 使用扩展方法的扩展类
- 21. 扩展方法扩展静态类
- 22. NativeScript扩展方法
- 23. 扩展方法ConvertAll
- 24. C#扩展方法
- 25. XElement.Elements()扩展方法?
- 26. GraphicsPath.IsClockWise()扩展方法
- 27. 扩展方法2.10.8.1
- 28. 扩展attach()方法?
- 29. C# - 扩展方法
- 30. VB.NET扩展方法