【问题标题】:Public Class not Accessible irrespective of the same Namespace无论相同的命名空间如何,公共类都不可访问
【发布时间】:2016-08-05 18:46:35
【问题描述】:

我无法在我的项目的另一个文件夹中实例化一个类,即使它们具有相同的命名空间。

namespace MyNameSpace
{
      public class MyFirstClass
      {
           MySecondClass myClass = new MySecondClass();
      }
}

namespace MyNameSpace
{
     public class MySecondClass {}
}

如果我将鼠标悬停在“myClass”变量上,我会收到以下消息:

找不到类型或命名空间名称“myClass”(您是 缺少 using 指令或程序集引用?)

我无法弄清楚为什么这不起作用。我已经被困了好几个小时了。

【问题讨论】:

  • 给会员打电话不是class?这是 C# 中的关键字,将其用作类的成员似乎会引起混淆。
  • class 是保留字。使用其他名称。
  • 我实际上并没有使用“类”这个词,很抱歉我应该在伪代码中更加小心。
  • @maximus009 - 当我将一个代码段放在一个文件夹中,而将另一个代码段放在另一个文件夹中时,它编译得很好......你有什么额外的信息可以帮助我们解决它吗?跨度>
  • 包含无法识别的类的文件的构建操作是什么?你能确认他们在同一个项目中吗?

标签: c# asp.net webforms


【解决方案1】:

class 是一个reserved keyword。只需重命名变量

namespace MyNameSpace
{
      public class MyFirstClass
      {
           MySecondClass instance = new MySecondClass();
      }
}

namespace MyNameSpace
{
   public class MySecondClass
   {

   }
}

【讨论】:

  • 不客气 :)。正确的命名总是有帮助的。
  • 我实际上并没有使用“类”这个词,很抱歉我应该在伪代码中更加小心。
【解决方案2】:

事实上,如果你愿意,你可以给一个变量名,它也是一个保留关键字。

只需在变量名前添加@,这将告诉编译器忽略它也是关键字并将其视为变量。

namespace MyNameSpace
{
      public class MyFirstClass
      {
           MySecondClass @class = new MySecondClass();
      }
}

namespace MyNameSpace
{
     public class MySecondClass {}
}

【讨论】:

  • 我的变量实际上并没有使用“类”这个词,很抱歉我应该更加小心我的伪代码。
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多