【问题标题】:Error after deleting an argument (the "method arguments" error)删除参数后出错(“方法参数”错误)
【发布时间】:2013-01-02 00:30:19
【问题描述】:

我建立了一个名为“MemoryDB”的类(其 c'tor 接受 6 个参数)并为她创建了单元测试。 直到今天一切正常 - 我尝试删除其中一个参数,所以它们仍然是 5。即使(在重新构建、保存、重新创建 MemoryDB 类等之后),单元测试也无法识别更改并且出现错误信息:TimeTable.DB.MemoryDB does not contain a constructor that takes 5 arguments. 我也尝试重新创建单元测试,但由于某种原因,它创建的自动 c'tor 是旧的 c'tor,有 6 个参数。

我是否以错误的方式删除了参数?我怎样才能解决这个问题?项目中的其他错误是否可能导致这个奇怪的问题?

附言这是旧的c'tor:

    public MemoryDB(List<Grade> allGrades, List<Teacher> allTeachers, ForbiddenHours forbiddenHours, List<Group> allGroups, List<List<Teacher>> staffs, List<List<Group>> parallelGroups)
    {
        CheckParametersValidation(allGrades, allTeachers, forbiddenHours, allGroups, staffs, parallelGroups);

        this.allGrades = allGrades;
        this.allTeachers = allTeachers;
        this.forbiddenHours = forbiddenHours;
        this.allGroups = allGroups;
        this.staffs = staffs;
        this.parallelGroups = parallelGroups;
    }

新的c'tor,删除“forbiddenHours”后:

    public MemoryDB(List<Grade> allGrades, List<Teacher> allTeachers, List<Group> allGroups, List<List<Teacher>> staffs, List<List<Group>> parallelGroups)
    {
        CheckParametersValidation(allGrades, allTeachers, allGroups, staffs, parallelGroups);

        this.allGrades = allGrades;
        this.allTeachers = allTeachers;
        this.allGroups = allGroups;
        this.staffs = staffs;
        this.parallelGroups = parallelGroups;
    }

【问题讨论】:

  • 您是如何创建单元测试的?单元测试项目中如何引用库?
  • 单元测试在不同的项目中 - “TestProject1” - 并且有这一行:using TimeTable.DB;
  • 您是如何添加对库的引用(您解释了 using 语句 - 这是另一回事) - 作为项目还是作为 DLL?
  • 在尝试更改单元测试之前,您是否重建了项目?先试试吧。
  • 是的,我几乎每一秒都在重建(顺便说一句,谢谢你的关注:))

标签: c# visual-studio-2010 constructor arguments


【解决方案1】:

很难说为什么会发生这种情况,但是在解决此类问题时需要注意一些事项:

  • 如果将库作为 DLL 引用,则 DLL 可能尚未更新。
    • 如果是这种情况,请重新构建库 - 如果有任何错误,则说明它尚未构建。修正错误。
    • 重建后,删除现有引用并重新添加(不是必须的,您可以简单地替换文件系统上的 DLL)
  • 如果库作为项目被引用:
    • 确保库的构建没有错误。
    • 可能存在一些缓存问题。重新启动 Visual Studio。

【讨论】:

  • 非常感谢!问题是项目中的其他错误(与我的工作没有任何合理的联系)。我想测试文件不能很好地处理周围的错误......再次感谢您! :)
  • @Lee - 项目需要在 DLL 更新之前build,其他项目(例如单元测试项目)可以看到更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多