`#region ... implementation`接口不起作用

时间:2016-06-05 12:27:40

标签: c# unity3d interface

我厌倦了为Unity3D项目编写单元测试。 MonoBehaviours 存在这个大问题,使其变得非常困难。为了解决这个问题,我使用this教程制作了一个名为 Humble Object 的对象构造。

在教程中已经有了这段代码(我简化了它):

public class Something : ISomething
{
  #region ISomething implementation

  void Test1() {
    // do something
  }

  #endregion

  void Test2() {
    Test1 ();
  }
}

我得到它,这应该相当于:

interface ISomething
{
  void Test1();
}

public class Something : ISomething
{
  public void Test1() {
    // do something
  }

  void Test2() {
    Test1 ();
  }
}

但是,如果我写第一个代码并尝试编译,我收到此错误消息:(第二个代码完成工作)

[...] The type or namespace name `ISomething' could not be found. Are you missing a using directive or an assembly reference?

2 个答案:

答案 0 :(得分:4)

您似乎认为使用#region ISomething implementation实际上定义了界面。

没有。 #regions have no effect on the code. They are just informational

您必须在第二个示例中实际定义接口(并使其至少与实现类一样可访问,在本例中为public)。

答案 1 :(得分:2)

  

我得到它,这应该相当于:

没有,根本没有。你必须首先创建接口,这就是它抛出所述错误的原因。 Region只是代码标记,可以更好地实现可更新性。