在声明ASP.NET之前不能使用局部变量

Mat*_*ell 3 c# asp.net-mvc

我有一些像这样的代码:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Save([Bind(Prefix="")]Person person)
{
    String s = person.property;
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

但它抛出错误:"在声明之前不能使用局部变量'person'.

我错过了什么简单的事情?

小智 15

您很可能收到此错误,因为稍后在同一代码块中声明了相同的变量.

根据编译器规则,变量引用将通过具有相同块的匹配声明来引用默认值,即使相同的声明存在于逻辑范围流中的块之外.

因此,简而言之,检查变量是否稍后在同一个应用程序块中被声明(几行向下).