Closed. This question is opinion-based。它当前不接受答案。
想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
已关闭6年。
Improve this question
假设我有一个方法:
显然,我应该使用上面显示的ArgumentNullException来验证用户不为空。现在如何验证user.Name不为空?这样做是一种好习惯吗?
想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
已关闭6年。
Improve this question
假设我有一个方法:
public void SayHello(User user)
{
if (user == null)
throw new ArgumentNullException("user");
Console.Write(string.Format("Hello from {0}", user.Name));
}
显然,我应该使用上面显示的ArgumentNullException来验证用户不为空。现在如何验证user.Name不为空?这样做是一种好习惯吗?
if (string.IsNullOrWhiteSpace(user.Name))
throw new ArgumentNullException("user", "Username is empty");
最佳答案
不,您不应该为此目的抛出ArgumentNullException,因为它是专门为解决null
引用而设计的。
相反,您应该使用ArgumentException或您自己的子类。比方说InvalidUserException
或类似的名称。
Even msdn talks about。
因此很明显,如果参数为null
,则使用ArgumentNullException
,否则使用ArgumentException
。
就是说,理想情况下,您甚至不应该允许某人使用无效的用户名创建User
实例。我真的会设计User
类,使其永远不能包含Name
作为null
。
关于c# - 嵌套成员的ArgumentNullException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27689802/
10-10 19:39