为什么这个坏代码?

Xai*_*oft 4 .net c#

我在这里看到一个关于承认你写过的最糟糕的代码的问题,我不太确定,因为我不知道为什么这是错误的代码.

public string GetUsername (string userName)
{
    User user = DbLookup.GetUser(userName);
    return user.Username;
}
Run Code Online (Sandbox Code Playgroud)

是因为它假定username存在并且不检查null?或者还有更多吗?

/sf/ask/9167581/#191969

Rob*_*ban 17

因为它返回的是用户作为输入发送给方法的相同内容...用户名

  • 我可以想象一下,传入的用户名与从数据库中提取的用户名有所不同.但是,如果情况确实如此,那么该函数应该以明确的方式命名. (4认同)
  • 它不会返回相同的东西 - 它可以返回null或异常. (2认同)

Mic*_*uso 5

它不会返回提供的相同字符串.它从数据库返回用户名,用户可能存在也可能不存在 - 因此它可以返回null.考虑到它的作用,方法名称可能不正确.有人在原帖中提到它应该是CheckIfUsernameExistsAndReturn sorta方法名.