gpt4 book ai didi

c# - 为什么这不创建默认构造函数?

转载 作者:太空狗 更新时间:2023-10-29 23:59:45 29 4
gpt4 key购买 nike

我想知道为什么这会抛出异常(在执行时):

IAgentIndicator iai = (IAgentIndicator)Activator.CreateInstance(agentIndicatorType);

当我有一个带有默认参数的构造函数时(但当我不创建构造函数时 public foo() :

public class foo : IAgentIndicator
{
public foo(int a = 0, int b = 0)
{
}
}

无参构造函数不是编译时生成的吗?

最佳答案

这里有两个问题:

  1. 只有当您没有自己定义任何构造函数时,才会自动为您生成无参数构造函数。显然这里不是这种情况,因为您已经手动声明了一个构造函数

  2. 可选参数只不过是调用点的编译时语法糖。参数化构造函数不算作无参数构造函数,即使其所有参数都是可选的

关于c# - 为什么这不创建默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36250148/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com