与类字段同名的参数是否会导致问题? C#

时间:2017-01-29 02:16:17

标签: c# class parameters

我有一个类,其中包含参数名称与字段名称匹配的方法。

class Test 
{
    private int num;

    public void Setup(int num)
    {
        if (num == 10)
        {
            ...
        }
    }
}

是否有任何情况下,方法Setup中的评估可以代替参数,而是使用该字段?

2 个答案:

答案 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
        }
    }
}