C# 类不包含接受0个参数的构造函数,但构造函数中的所有参数都是可选的

C# 类不包含接受0个参数的构造函数,但构造函数中的所有参数都是可选的,c#,C#,我有一个类,它有一个构造函数,但参数是可选的 public class foo { public foo(string variable1 = "", string variable2 = "", int variable3 = 0) { // Code goes here... } } 当我尝试调用该类时,简单地调用foo(),我不会从Intellisense中得到任何错误,但是当我构建项目时,我会在BuildVision中得到这个错误: “foo”

我有一个类,它有一个构造函数,但参数是可选的

public class foo 
{
    public foo(string variable1 = "", string variable2 = "", int variable3 = 0)
    {
        // Code goes here...
    }
}
当我尝试调用该类时,简单地调用
foo()
,我不会从Intellisense中得到任何错误,但是当我构建项目时,我会在BuildVision中得到这个错误:

“foo”不包含接受0个参数的构造函数

有办法解决这个问题吗?任何帮助都将不胜感激

编辑

下面是我试图调用的一个类和方法:

public class NotImplementedExcept : BaseExcept
    public NotImplementedExcept(
            [System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
            [System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
            [System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0) : base(className, $"Method {memberName} is not implemented", memberName, sourceFilePath, sourceLineNumber)
    {
    }
}
这是处理NotImplementedException的自定义方法。通过这种方式,我们可以记录异常,并根据需要更具体地处理它们。参数将由
System.Runtime.CompilerServices
填充。这就是为什么它们是可选的

public class foo 
{
    public foo(string variable1 = "", string variable2 = "", int variable3 = 0)
    {
        // Code goes here...
    }
}

BaseExcept
类是一个抽象类,用于处理异常的记录方式。

使用该类定义
var foo=new foo()对我来说很好…@克里斯,你说得对。问题不在于重复性这是不可重复的,但实际的根本原因可能是您过于简化了示例。阅读并创建一个。您可能正在使用继承;请参阅“复制”。@CodeCaster这怎么是复制的?OP没有提供c-tor之外的任何代码,我们不知道问题是否出在
new()
上。这是一个相当“不清楚”的问题。@CodeCaster好吧,我不能反驳,尽管在我的理解中,这不是一个完全重复的问题,因为它需要OP访问答案,并理解他的问题与所描述的问题之间的联系。我们可以说,理解这种联系很容易,但这实际上取决于一个人的经验。除此之外,在我们完全确定之前,我似乎不是唯一反对将其标记为重复的人对我来说很好…@克里斯,你说得对。问题不在于重复性这是不可重复的,但实际的根本原因可能是您过于简化了示例。阅读并创建一个。您可能正在使用继承;请参阅“复制”。@CodeCaster这怎么是复制的?OP没有提供c-tor之外的任何代码,我们不知道问题是否出在
new()
上。这是一个相当“不清楚”的问题。@CodeCaster好吧,我不能反驳,尽管在我的理解中,这不是一个完全重复的问题,因为它需要OP访问答案,并理解他的问题与所描述的问题之间的联系。我们可以说,理解这种联系很容易,但这实际上取决于一个人的经验。除此之外,在我们完全确定之前,我似乎不是唯一一个反对将其标记为复制品的人。