作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图用相同的方法但不同的逻辑来测试几个类,所以我想创建一个通用的测试用例。我如何实例化通用方法?
我的例子:
[TestClass]
public class GenericTest<T : MyBuilder>
{
T target;
[TestInitialize()]
public void MyTestInitialize()
{
target = new T(param1, param2, param3, param4); // here i'm obviosly stuck
}
[TestMethod]
public void TestMethodBuilder()
{
Assert.AreEqual<string>(GetNameAsItShouldBe(),target.BuildName());
}
abstract public string GetNameAsItShouldBe();
}
那么我怎样才能实例化这个类呢?我有很强的 Java 背景,所以我的代码可能与 C# 不兼容。
最佳答案
对于带参数的构造函数,您必须使用反射:
public class GenericTest<T> where T : MyBuilder
{
[TestInitialize]
public void Init()
{
target = (T)Activator.CreateInstance(typeof(T), new object[] { param1, param2, param3, param4 });
}
}
关于c# - 如何在 C# 中从泛型创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329970/
我是一名优秀的程序员,十分优秀!