我有一个类,其中包含参数名称与字段名称匹配的方法。
class Test
{
private int num;
public void Setup(int num)
{
if (num == 10)
{
...
}
}
}
是否有任何情况下,方法Setup中的评估可以代替参数,而是使用该字段?
答案 0 :(得分:3)
不,评估不可能使用字段而不是参数。范围内的变量始终是外部范围的阴影变量。
因此,如果您的方法具有num
参数,则无法从该方法中访问实例成员num
,而无需使用this
进行限定。
但如果可以的话,最好尽量避免这些情况。
答案 1 :(得分:2)
是的,请将其称为this.num
,而不仅仅是num
。
class Test
{
private int num;
public void Setup(int num)
{
if (num == 10) //parameter
{
this.num = 42; //field
}
}
}