gpt4 book ai didi

c# - ASP.NET MVC : Ugly code needs refactoring (returning three values)

转载 作者:行者123 更新时间:2023-11-30 19:04:07 25 4
gpt4 key购买 nike

这几天我一直在思考一个设计问题(有点臭的代码)。也许你能帮上忙。

我的 RegistrationService 中有一个“登录”方法,目前它看起来像这样简化:



public  bool 登录(字符串用户名,字符串密码,
out 字符串 successRedirectUrl,
out IValidationDictionary validationResults)
{
successRedirectUrl = "";
如果(!Validator.IsValid(用户名)||!Validator.IsValid(密码))返回false;

//其他逻辑
//分布式登录请求等
//如果登录成功等,构建重定向 Url
}

好的,让我解释一下上面的代码。该方法的主要返回值( bool 值)应该告诉调用者登录请求是否成功。现在,如果它成功了,我需要将用户重定向到不同的 Url(因此,“out”参数 successRedirectUrl)。如果不成功,我需要在 View 中告诉用户出了什么问题 - 因此是 ValidationDictionary (Modelstate)。

虽然这段代码真的很难看而且很难维护。我想摆脱 Boolean 返回类型(直接返回 successRedirectUrl 并检查调用方是否为空),但我觉得事情变得更加不清楚。

知道如何做得更好吗?

谢谢!

最佳答案

创建一个自定义类来保存所有三个值,并返回它。去掉“out”参数。

关于c# - ASP.NET MVC : Ugly code needs refactoring (returning three values),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1282708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com