首页 > 解决方案 > 时间:2019-05-10 标签:c#constructorchaining/defaultconstructor

问题描述

编程新手,想知道在代码中用 C# 声明默认构造函数是否是最佳实践,即使我认为 C# 会为你做这件事。例如,以下没有语句的打开构造函数的目的是什么。下面的例子是我一直在关注的,但不是很明白为什么 OperationResult 的两个构造函数类是链式的?为什么还需要空的?

public class OperationResult<T>
{
    public OperationResult()
    {
    }

    public OperationResult(T result, string message) : this()
    {
        this.Result = result;
        this.Message = message;
    }

    public T Result { get; set; }
    public string Message { get; set; }
}

}

标签: c#classconstructorchaining

解决方案


如果您不声明任何构造函数,C# 将假定没有参数的默认构造函数。因此,如果您不需要构造函数的任何重载,并且在创建类的新实例时也不需要编写代码,则不需要声明构造函数。但是,如果您有构造函数的重载(如果您声明带有参数的构造函数),那么没有参数的构造函数将不可用,除非您明确声明它。如果您不需要其中的任何代码,它就像您在示例中提到的空构造函数一样。


推荐阅读