我创建了一个对象,我希望通过对象初始化(或者你可能称之为的任何东西)来实例化它。如果您不太确定我在说什么,请查看此MSDN链接here。无论如何,我所拥有的对象将如下所示(我只是在这里发布界面以简化事情):
public interface IEntryPoint<T>
{
string Name { get; set; }
IList<ITestItem<T>> Tests { get; set; }
}
然后,这是ITestItem<T>
对象的界面:
public interface ITestItem<T>
{
string Name { get; set; }
T Test { get; set; }
}
然后,IEntryPoint<T>
对象的实际实现有一个如下所示的构造函数:
public EntryPoint(string name, IList<ITestItem<T>> tests)
{
this.name = name;
this.tests = tests;
}
ITestItem<T>
构造函数的实现如下:
public TestItem(string name, T test)
{
this.name = name;
this.test = test;
}
好吧,既然你已经了解了我的物品的样子,我将尝试解释我的问题。同样,我想要做的是通过对象初始化来实例化我的EntryPoint
对象(请参阅上面的链接以了解我的意思)。我尝试这样做时遇到语法错误,我无法理解原因。所以说到这里,当我尝试实例化一个新的EntryPoint
时,这就是它的样子:
ITestItem<int> testItem = new TestItem<int>("My Test", 0);
IEntryPoint<int> entryPoint = new EntryPoint<int>
{
Name = "My Entry Point",
Tests = new List<ITestItem<int>>() { testItem }
};
答案 0 :(得分:0)
由于您有一个带有两个参数的构造函数,现在默认构造函数即无参数将无法使用,除非您明确指定类型,因此如果无参数构造函数不存在,则无法使用对象初始化程序,添加EntryPoint
的无参数构造函数:
public EntryPoint()
{
}
如需参考,请查看How to: Initialize Objects by Using an Object Initializer (C# Programming Guide)