2016-07-05 61 views
-2

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

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 
+7

错误不是很明显吗? – haim770

+4

你有'carValue'作为'Car'类型的参数和''decimal'类型的本地。你必须为其中一个选择一个不同的名字。 –

+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; 
} 

结论:

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

4

我将解释你遇到的编译器错误,以防它对你不明显。

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

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

相关问题