例如:
int a;
int b;
int value = getValue(a,b);
private int getValue(int a, int b)
{
int value = a+b;
return value;
}
Run Code Online (Sandbox Code Playgroud)
是上述实用还是被认为是不好的做法,并会在后期开发中引起问题.
我意识到这是一个人为的例子来展示你的要求,但你的例子确实包含一个命名问题,我将指出:
int a; // <---- right here
int b; // <---- and here
int value = getValue(a,b); // <--- and a little here
private int getValue(int a, int b)
{
int value = a+b;
return value;
}
Run Code Online (Sandbox Code Playgroud)
该问题是不是在变量名是否一致或不一致,他们是所谓的方法是什么.该问题是变量的名字不叫任何有意义的东西.这比你提出的要多得多.
让我们重新考虑你的方法,使这个例子稍微减少设计......
int a;
int b;
int value = GetSum(a,b);
private int GetSum(int firstValue, int secondValue)
{
return firstValue + secondValue;
}
Run Code Online (Sandbox Code Playgroud)
该方法现在更清洁,更直观地反映了它的目的.现在,我们再次提出这样的问题......应a和b重命名以匹配方法的人?
很可能不是.方法中的名称已更改为指示其上下文.该方法获得两个值的总和,第一个和第二个值.那么,什么是上下文a和b?他们也只知道第一个和第二个吗?或者他们是否传达了一些其他不易获得的含义?就像是:
int milesToFirstDestination;
int milesToSecondDestination;
Run Code Online (Sandbox Code Playgroud)
要么:
int heightOfPersonInInches;
int heightOfStepstoolInInches;
Run Code Online (Sandbox Code Playgroud)
或者为了某种目的需要求和的两个值的任何其他示例.如果我们将这个上下文添加到变量名中,那么我们肯定不希望将它添加到方法中.该方法应尽可能通用,在该任务之外执行单个任务而无需担心.
简而言之,这既不好也不坏,因为它甚至不值得考虑.有时,仅凭巧合,名称是相同的.(例如,这通常可以通过私人帮助方法实现.)但它们与标准或实践的结果不同,而是由于巧合具有相同的含义.
你是说一个好的做法总是命名一个变量用作方法的参数(在调用站点),方法与方法签名中方法的参数相同?(你的例子不清楚,不会编译,也不包含任何参数......)
不 - 你绝对不需要这样做.在很多情况下,你调用它没有关于您的上下文线索通用方法-但你应该在一个方式,你的调用方法命名变量是在这方面的意义.