假设我有以下代码
public static string GetXMLValue()
{
XDocument settingsFile = XDocument.Load("Settings.xml");
return settingsFile.Element("Settings").Element("GenericValue").Value;
}
它只读取XML设置文件并返回GenericValue值。它不能比那更简单。现在我的问题是,它是否会提供任何好处(可读性,性能,语法,维护等),首先将返回值放在字符串变量中然后返回?或者它最好离开它的方式?
答案 0 :(得分:7)
说实话,方法的简单性使其即使在“一行”中也可读:
public static string GetXMLValue()
{
return XDocument
.Load("Settings.xml")
.Element("Settings")
.Element("GenericValue")
.Value;
}
答案 1 :(得分:4)
在某些情况下,我看到了创建辅助变量的价值:
即使没有这些,对于这样一个非常重要的表达式,我会创建一个局部变量,以使该函数更具可读性。
答案 2 :(得分:2)
它能提供任何好处吗? 首先将返回值放在a中 字符串变量然后返回?或者是它 最好离开了它的方式?
功能如此简单,无所谓,所以不要为此失眠。一旦功能变得更加复杂,您可以随时重新考虑这一点。
例如,如果您稍后需要在返回值之前对值进行检查,或者出于审计原因而想要记录该值,则单独的变量将有意义。在那之前,保持原样。
暂且不说:
我发现更令人质疑的是您正在使用getter方法读取外部资源(文件)。在getter中调用可能有副作用(例如读取文件)的操作是不好的样式恕我直言。这样一来,例如getter的每个调用者都必须通过读取文件来处理IOExceptions。
考虑改变这种情况,例如通过构造函数传递信息(从构造函数中读取文件,或者传入一个负责提供信息的对象)。这将解耦您的设计,并简化例如重用和单元测试。
答案 3 :(得分:1)
从可读性的角度来看,将值分配给变量并返回它肯定会有所帮助。