【发布时间】:2018-05-12 21:43:53
【问题描述】:
假设我有这个检查用户详细信息的功能
//check valid user's details.
private bool checkUserDatails(String nickname, String groupId)
{
//check nickname
if ((nickname == null || nickname.Trim().Equals("")))
{
return false;
}
//check groupId
if (groupId == null)
return false;
//convert to int
int id;
try
{
id = int.Parse(groupId);
}
catch (Exception) { return false; }
//check id
if (id < 0 | id > 100)
return false;
return true;
}
它工作得很好,但调用者函数不知道为什么函数返回 false。我最初的想法是创建自己的异常,例如IncorrectUsernameException 等并抛出它们。我也可以制作返回值字符串并返回“不正确的用户名”。
正确的 C# 方法是什么?
【问题讨论】:
-
if (String.IsNullOrWhiteSpace(nickname)) return false; -
有两篇关于正确异常处理的文章我链接了很多。他们可能会帮助你:blogs.msdn.com/b/ericlippert/archive/2008/09/10/… | codeproject.com/Articles/9538/…你的代码有很多问题,除了那些检查的函数部分。
-
另外:我们错过了太多的完整评估。用户详细信息来自...某处。无论在哪里,您都需要一些东西来读取该信息、解析信息或创建一个对象。 那 是这段代码的地方,该操作的上下文将决定你的代码应该是什么样子。它也会 TO 去某个地方……可能是一个对象。构造该对象是此代码的另一个地方,或者可能是作为该对象一部分的验证方法或属性。