相关疑难解决方法(0)

如何检查是否定义了对象?

我想检查是否使用C#定义或存在对象.

像这样的东西:

if (defined(Object)){

}
Run Code Online (Sandbox Code Playgroud)

c#

39
推荐指数
2
解决办法
10万
查看次数

我们是否应该始终在第一行中检查java中方法的每个参数是否为null?

每个方法都接受一组参数值.我们是否应该始终验证输入参数的非零值或允许代码失败RunTimeException

我看过很多代码,人们并没有真正检查输入参数的空值,只是使用参数编写业务逻辑.什么是最好的方法?

void public( String a, Integer b, Object c)
{
  if( a == null || b == null || c == null)
  {
    throw new RunTimeException("Message...");
  }
  .....business logic.....
}
Run Code Online (Sandbox Code Playgroud)

java validation parameters methods null

23
推荐指数
2
解决办法
2万
查看次数

C#:在这种情况下,我是否应该费心检查null?

可以说我有这种扩展方法:

public static bool HasFive<T>(this IEnumerable<T> subjects)
{
    if(subjects == null)
        throw new ArgumentNullException("subjects");

    return subjects.Count() == 5;
}
Run Code Online (Sandbox Code Playgroud)

你觉得这个空检查和异常抛出真的有必要吗?我的意思是,当我使用这种Count方法时,ArgumentNullException无论如何都会被抛出,对吧?

我可以想到我应该这样做的一个原因,但是我想听听别人对此的看法.是的,我问的理由是部分懒惰(想要尽可能少地写),但也因为我认为一堆空检查和异常抛出了一些混乱的方法,这些方法往往最终是他们真的需要.有人应该知道比将null发送到方法更好:p

无论如何,你们怎么想?


注意: Count()是一个扩展方法,抛出一个ArgumentNullException,而不是一个NullReferenceException.见Enumerable.Count<TSource> Method (IEnumerable<TSource>).如果你不相信我自己尝试=)


注2:在这里给出的答案之后,我被说服开始检查更多的空值.我仍然很懒,所以我开始EnforceLokad共享库中使用该类.可以推荐看一下.而不是我的例子,我可以这样做:

public static bool HasFive<T>(this IEnumerable<T> subjects)
{
    Enforce.Argument(() => subjects);
    return subjects.Count() == 5;
}
Run Code Online (Sandbox Code Playgroud)

c#

5
推荐指数
1
解决办法
1276
查看次数

在调用方法或函数中在哪里检查空值?

是否应该在调用函数之前或在函数本身内检查 null?

null

4
推荐指数
1
解决办法
1987
查看次数

标签 统计

c# ×2

null ×2

java ×1

methods ×1

parameters ×1

validation ×1