声明公共变量会导致所有内容出现"name does not exist in this context"错误


    using System;
namespace GridSim
{
    class Program
    {
        static void Main()
        {
//error is right before declaring public. "} expected"
            public int h = 1;
            CreateWorld.Create();
        }
    }
}

我有另一个类可以在嵌套的循环中创建网格。班级是公开的。在我项目中的任何地方宣布公共变量会产生相同的结果。

"}预期"在公共变量之前。

"名称"(在此处插入事物)"在此上下文中不存在",对于公共变量之后的所有内容而言。

我希望能够将网格的一部分设置为我项目中任何地方的角色,但是这个错误阻止了我这样做。

在方法中,变量没有访问修饰符。删除public关键字。

如果该变量应该是一个字段,请将其移出方法。

在我项目中的任何地方宣布公共变量会产生相同的结果。

这根本不是真的。您可以在方法内声明变量,这些声明不能包含访问修饰符。如果您打算将其声明为 field ,那么该声明只能在类级别,在任何方法之外存在。

您可能是指

using System;
namespace GridSim
{
  class Program
  {
    static void Main()
    {
        int h = 1;
        CreateWorld.Create();
    }
  }
}

您可能也意味着这个:

using System;
namespace GridSim
{
  class Program
  {
    private int _h = 1;
    public int H{
      get{ return _h; }
      set{ _h = value; }
    }
    static void Main()
    {
        CreateWorld.Create();
    }
  }
}

编码标准有所不同,但通常是较宽的级别的私人变量(在类范围中声明,未在方法范围中声明)命名为从下划线开始。公共变量和属性通常以大写字母开头。如今,我们也倾向于不使用公共变量。对属性的偏好。的确,那里的形式相当古老,宣布私人成员并设置访问它的获取;速记public int H{ get; set; }更为常见,其余的代码使其正常工作在幕后

最后,您必须记住,您看到的错误只是计算机对解析所写内容的最佳解释。如果您写的东西没想到,那么它可能会在其他任何地方造成错误。这不一定是因为其他地方都有错误,只是您写的第一件事是不正确的,导致编译器错误地处理文件的其余部分。例如,将一个太多}放在特定的位置,可能意味着您中的所有代码突然都在类中,这将在整个地方产生语法错误

在学习时期待这些东西;当您获得更多经验并了解如何布置语言

时,它消失了。

相关内容

最新更新