C# 编译器抱怨在没有局部变量的情况下滥用局部变量

本文关键字:局部变量 情况下 编译器 | 更新日期: 2023-09-27 18:34:07

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

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

编辑:添加了缺少的尝试和捕获语句。 (在删除之前尝试解决错误。当前的问题是:为什么拼写错误的"return"会导致此编译器消息?

C# 编译器抱怨在没有局部变量的情况下滥用局部变量

问题就在这里:

returrn _mainAssy;

因为您拼错了return ,编译器无法识别关键字。所以它认为returrn是一个类型,returrn _mainAssyreturrn 类型的变量_mainAssy的声明......