Null 对我来说是一种奇怪的数据类型,似乎使用它是错误的,也许是我作为初学者经常遇到的空指针错误,现在让我将任何 null 实例与某种邪恶联系起来!
无论如何我的问题是
在某些情况下可以使用 null 作为参数吗?例如,一个方法可能需要a和b来完成一项任务,但在某些情况下它可能只需要a。在这些奇怪的实例中,对 b 进行 null 解析并检查 if(b==null) 是否可行,然后我们知道它是什么?
还是我在这里的方式?
我必须承认,让我想知道这是否可以接受的是,所讨论的方法可能被过度使用,但整个方法可能会有 5 或 6 行的差异。这让我担心代码重复。
通过是绝对没问题的null
到方法。但是,如果您有一个可能不需要传递变量的 csae,请考虑超载.
您可能传递 null 的原因是因为您可能有一个带有相当多参数的方法,并且您不想实现所有可能的重载。
我个人会not use 可选参数- 由于问题,关于这个主题有很多讨论方法作为契约这超出了这个问题的范围。
UPDATE
正确的方法不是重复代码,而是让重载互相调用:
public void Foo(A a)
{
Foo(a, null);
}
public void Foo(A a, B b)
{
// .......
}
这将告诉客户端此代码:
- 您只能使用 A 来调用方法
- 您可以使用 A 和 B 调用方法
如果我只有第二种方法的话客户不知道是否可以通过null
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)