C#编译器抱怨在没有局部变量之前滥用它

时间:2014-12-14 01:58:59

标签: c# visual-studio-2013

我是瞎了吗?局部变量在哪里?

1> d:\ path \ Start.cs(99,11,99,20):错误CS0844:在声明之前不能使用局部变量'_mainAssy'。局部变量的声明隐藏了字段

同样的错误行100,102,105。

private AssyFile _mainAssy = null;
private AssyFile MainAssy()
{
  if (_mainAssy != null) // this is line 99.
     return _mainAssy;
  try
  {
    _mainAssy = new AssyFile(Application.ActiveDocument as AssemblyDocument);
  }
  catch
  {
    _mainAssy = documents.CreateAssy(); 
  }

  returrn _mainAssy;
}

编辑:添加了缺少的try和catch语句。 (在删除之前尝试解决bug。 目前的问题是:为什么错误拼写'return'导致这个编译器消息?

1 个答案:

答案 0 :(得分:3)

问题在于:

returrn _mainAssy;

因为拼写错误return,编译器无法识别关键字。因此,它认为returrn是一种类型,而returrn _mainAssy_mainAssy类型的变量returrn的声明......