【发布时间】:2019-02-20 20:34:23
【问题描述】:
我的单元测试用例项目中出现CS0175 Use of keyword 'base' is not valid in this context 错误。
这就是我的代码的样子:
实现接口的类
public interface iUtility
{
void Print();
}
public class Utility: iUtility
{
public void Print()
{
Console.Write("Print");
}
}
使用实用程序类和派生类的基类
public class BaseCls
{
private iUtility _iUtility;
public BaseCls()
{
_iUtility = new Utility();
}
public BaseCls(iUtility iUtility)
{
_iUtility = iUtility;
}
}
public class DerivedCls : BaseCls
{
public void PrintSomething()
{
Console.Write("Print Something");
}
}
在我的单元测试项目中,我正在测试派生类并尝试传递实用程序类的实例。为什么我现在这样做可能没有意义,但我计划使用统一框架并使用 IoC 来注入不同的依赖项。
为简洁起见,我没有显示所有代码。
单元测试项目发生错误
[TestClass]
public class UnitTest1
{
public void TestInitialize()
{
//I want to pass instance of utility class here
iUtility obj = new Utility();
DerivedCls cls = new DerivedCls(): base(obj);
}
[TestMethod]
public void TestMethod1()
{
}
}
我需要做什么来修复这个错误?我想通过构造函数从派生类传递实用程序类的实例。
【问题讨论】:
-
错误发生在哪里?您发布的代码甚至没有在任何地方包含标识符
base。 -
巧合的是你漏掉了对词库的任何引用,所以它不可能知道
-
@rory.ap 更新了问题。我最初忘记包含代码。
-
@MichaelRandall 更新了问题。我最初忘记包含代码。
-
@elgonzo:更新了问题。我最初忘记包含代码。
标签: c# .net c#-4.0 constructor inversion-of-control