gpt4 book ai didi

c# - 对不需要实例的扩展方法进行空检查?

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:04 25 4
gpt4 key购买 nike

我最近问 this question关于该主题,该主题已作为 this one 的副本关闭- 和 this one 一样在我之前。但是,我想就一个极端案例提出一个更具体的问题,我觉得上述问题或他们的答案都没有真正涵盖:

一个不需要实例的扩展方法应该如何对空引用使用react?

一个例子(答案很明显)是 .IsNullOrEmpty() (当然应该在空引用上返回 true),但我相信在其他情况下,在可能为空的对象上调用扩展方法是有意义的。

另一个例子可能是我在 my other question 中概述的方法的变体。 , 如果我们假设 foreach循环不会抛出一个空集合(我知道它会,但想象它不仅仅是一个思想实验)。

这里的最佳做法是什么?我们是否应该检查 null 并抛出 ArgumentNullException无论如何,还是视情况而定?如果它确实取决于情况,我们应该根据什么标准来决定做什么?

最佳答案

就个人而言,我对不抛出空实例的扩展方法有疑问。我知道扩展方法是静态方法的语法糖。但是,它们的使用类似于实例方法。因此,我相信它们应该表现得好像它们是一个实例方法并在“this”实例为空时抛出。

这对我来说是一个可维护性问题。对于不知道方法是实际类型还是扩展方法的代码库新手来说,看到像 IsNull() 这样的方法会令人不安,因为它根本没有任何意义。

所以,这是我的两分钱:完全完全的个人意见。

关于c# - 对不需要实例的扩展方法进行空检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com