我不能在方法中使用相同的参数。 CS0136

时间:2016-07-05 16:17:33

标签: c# .net visual-studio

我不能在方法DetermineCarValue

中使用相同的参数
public static decimal DetermineCarValue(Car carValue)
        {
            decimal carValue = 100.0M;
            return carValue;
        }

当我输入carValue参数时,我收到此错误

CS0136  A local or parameter named 'carValue' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter

2 个答案:

答案 0 :(得分:10)

你回答了自己的问题:

  

我不能在方法DetermineCarValue

中使用相同的参数

将本地方法变量carValue重命名为其他内容。

您有两个具有相同名称的变量,一个传递给方法,另一个在方法中声明。

public static decimal DetermineCarValue(Car carValue)
{
     decimal carValue = 100.0M;
     return carValue; // which carValue ? of type Car or decimal ? Confusing
}

我真的不知道这个方法应该做什么,但是如果你想更新Car对象上的某个属性,那么你可以这样做:

public static decimal DetermineCarValue(Car car)
{
    // suppose you have property called Value in your Car class
    car.Value = 100.0M;
    return car.Value;
}

结论:

不能声明一个与方法参数同名的方法变量。更确切地说,在同一范围内不能有两个具有相同名称的标识符。

答案 1 :(得分:4)

我将解释你遇到的编译错误,以防你不明白。

您用于Car类型参数的标识符与您在同一范围内声明的十进制类型变量使用的标识符相同,范围仅限于您的方法。这会引起歧义,使编译器无法确定您所指的变量。要解决此问题,请重命名参数或定义的变量。

如果你想重载变量carValue,请注意它根本不受支持。