gpt4 book ai didi

c# - 您将如何重构此条件以使用多态性?

转载 作者:太空狗 更新时间:2023-10-29 18:21:26 25 4
gpt4 key购买 nike

我刚刚在 YouTube 上观看了关于从代码中删除 if 语句并改用多态性的 Google clean code 视频(参见 link,第一篇文章)。

看完视频后,我看了看我在看视频之前写的一些代码,发现了一些可以使用这种方法的地方,主要是多次实现同一种逻辑的地方。举个例子:

我有这样的代码。

public int Number
{
get
{
string returnValue;
if (this.internalTableNumber == null)
returnValue = this.RunTableInfoCommand(internalTableName,
TableInfoEnum.TAB_INFO_NUM);
else
returnValue = this.RunTableInfoCommand(internalTableNumber.Value,
TableInfoEnum.TAB_INFO_NUM);
return Convert.ToInt32(returnValue);
}
}

RunTableInfoCommand 的作用并不重要,但最主要的是我有许多具有完全相同的 if 语句的属性,唯一改变的是 TableInfoEnum。

我想知道是否有人可以帮助我重构它,使其仍然做同样的事情,但没有任何 if 语句?

最佳答案

在看到其中一些(技术上正确的)回复后,这里只是一个警告,摆脱 If 语句不应该是你的唯一目标,目标应该是使你的代码可扩展、可维护和简单,如果这意味着摆脱 if 语句,很好,但它本身不应该成为目标。

在您提供的代码示例中,在不了解更多关于您的应用程序的情况下,并且假设您不打算扩展太多过去的空值测试,我认为 If (或者甚至可能是三元)更易于维护坦率地说是解决方案。

关于c# - 您将如何重构此条件以使用多态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/358389/

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