我有一个c#winforms .net 4应用程序,它接收一个156个字符的消息,然后依次将此消息传递给多个函数。
我的问题是,保持将相同的值作为参数传递或者是否有更有效的方法效率低下?
所以目前我有:
string code = getTheCode();
\\decode first part
string result1 = getResult1(code);
string result2 = getResult2(code);
...
代码的值在初始赋值后永远不会改变。
答案 0 :(得分:1)
答案是否定的。保持将相同的字符串作为参数传递并不是低效的。您只是传递对字符串的引用,因此非常有效。
答案 1 :(得分:0)
您可以使用构造函数创建一个类,要求您将字符串作为参数传递并将其设置为私有属性。然后,您可以使用使用此私有属性计算结果的方法来检索数据。
但这只是你喜欢的编码风格的问题,当然(以及你是否会在一个或多个地方使用这些方法)。对我来说,它更具可读性,你可以确保代码变量在ResultGetter类的实例中不会改变。
public class ResultGetter
{
private readonly string _code;
public ResultGetter(string code)
{
_code = code;
}
public string GetResult1()
{
var returnValue = // do something with _code property
return returnValue;
}
public string GetResult2()
{
var returnValue = // do something with _code property
return returnValue;
}
// et cetera ad nauseam
}
然后在你的主文件中:
var code = getTheCode();
var rg = new ResultGetter(code);
string result1 = rg.GetResult1();
string result2 = rg.GetResult2();
答案 2 :(得分:-1)
将相同的代码传递给多个方法可能效率低下。如果您发现必须多次执行此操作,则可能需要创建一个负责“获取结果”的类。在这个新类的构造函数中传递''code'。这样,您可以在类的生命周期中重用“代码”,而不必继续传递与参数相同的值