我有一个用于构造请求对象以传递给 API 的类:
public class BaseRequest
{
public string messageId { get; set; }
public string timestamp { get; set; }
public string updatedAtMin { get; set; }
public int page { get; set; }
public BaseRequest(DateTime updatedAtMin, int page)
{
this.messageId = Guid.NewGuid().ToString();
this.timestamp = DateTime.UtcNow.ToString("o");
this.updatedAtMin = updatedAtMin.ToString("o");
this.page = page;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,存在需要将可选参数添加到请求对象的边缘情况。我的第一个想法是从 BaseRequest 类继承,但我不知道如何创建它并使其语法正确。
public class CaseRequest : BaseRequest
{
public bool extraParameter { get; set; }
public CaseRequest(bool extraParameter) : base()
{
this.extraParameter = extraParameter;
}
}
Run Code Online (Sandbox Code Playgroud)
错误:没有给出对应于 'BaseRequest.BaseRequest(DateTime, int) 的必需形式参数 'updatedAtMin' 的参数
有人可以帮忙吗?本质上,我想用通常的构造函数创建一个 BaseRequest 的实例,但添加了 extraParameter。
非常感谢,并为我可悲的无知道歉!
您的基类的构造函数具有参数:
public BaseRequest(DateTime updatedAtMin, int page)
Run Code Online (Sandbox Code Playgroud)
但是您没有为这些参数传递任何值:
base()
Run Code Online (Sandbox Code Playgroud)
理想情况下,您可以扩展构造函数以接受这些参数并传递它们:
public CaseRequest(DateTime updatedAtMin, int page, bool extraParameter) : base(updatedAtMin, page)
{
this.extraParameter = extraParameter;
}
Run Code Online (Sandbox Code Playgroud)
如果您不希望用户设置它们,您也可以传递默认值。或者在基类中创建一个无参数的构造函数。等等。只要你传递一些东西来满足基本构造函数。
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |