C# 了解对象初始值设定项在涉及泛型的情况下如何工作
我已经创建了一个对象,我想通过对象初始化来实例化它(或者不管你怎么称呼它)。如果您不太确定我在说什么,请查看此MSDN链接。无论如何,我拥有的对象将类似于以下内容(我将在这里发布接口以简化事情): 好吧,既然你已经知道我的物体是什么样子了,我将试着解释我的问题。同样,我要做的是通过对象初始化来实例化我的C# 了解对象初始值设定项在涉及泛型的情况下如何工作,c#,generics,syntax-error,C#,Generics,Syntax Error,我已经创建了一个对象,我想通过对象初始化来实例化它(或者不管你怎么称呼它)。如果您不太确定我在说什么,请查看此MSDN链接。无论如何,我拥有的对象将类似于以下内容(我将在这里发布接口以简化事情): 好吧,既然你已经知道我的物体是什么样子了,我将试着解释我的问题。同样,我要做的是通过对象初始化来实例化我的EntryPoint对象(请参阅上面的链接以理解我的意思)。当我尝试这样做时,我得到了一个语法错误,我只是不明白为什么。话虽如此,当我尝试实例化一个新的入口点时,它是这样的: ITestItem&
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 }
};
public EntryPoint()
{
}
ITestItem testItem=新的testItem(“我的测试”,0);
IEntryPoint入口点=新入口点
{
Name=“我的入口点”,
Tests=新列表(){testItem}
};
由于您有一个具有两个参数的构造函数,现在默认构造函数(即无参数构造函数)将不可用,除非您在类型中显式指定,因此如果无参数构造函数不存在,您将无法使用对象初始值设定项,请为入口点添加一个无参数构造函数
:
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 }
};
public EntryPoint()
{
}
作为参考,请看一看,而不是到处给我们显示位,然后说你得到了“语法错误”,而不告诉我们错误是什么,请提供一个。(你没有显示你似乎正在调用的无参数入口点
,这没有帮助。也许这就是问题所在?@jonsket ah。。。这正是我想要的,但没有达到。对不起。@JonSkeet我也要补充这个问题。是的,你是对的。我没有无参数构造函数。只有我在代码中发布的那个。让我试试看,这可能就行了。你刚才添加到答案中的链接。。。我的问题中已经有了这个链接(显然我没有通读)。不过,谢谢。是的,这是我的问题。我添加了默认(无参数)构造函数,它解决了我的问题。
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 }
};
public EntryPoint()
{
}