c# - _base_ 值上的空对象模式
问题描述
假设我们有以下 DTO 对象,它表示数据库中的记录:
public class UserDto
{
public int Id { get; set; }
public DateTime? ExpireOn { get; set; }
}
所以Id
属性不可为空并且ExpireOn
是。我在基于空对象模式实现域对象时遇到问题,因为我不知道如何实现不可为空的ExpireOn
属性。执行此操作的最佳实用方法是什么?
解决方案
您可以在 Tor 中使用 Nullable 并检查是否为 null。
public class User
{
public User(int? id, Datetime? expireOn)
{
if(id == null)
{
throw new ArgumentNullException(nameof(id));
}
if(expireOn == null)
{
throw new ArgumentNullException(nameof(expireOn));
}
Id = id.Value
ExpireOn = expireOn.Value;
}
public int Id { get; set; }
public Datetime ExpireOn { get; set; }
}
推荐阅读
- perl - Perl 除法给 JavaScript 带来不同的结果
- php - Symfony\Component\Debug\Exception\FatalErrorException laravel 错误
- java - 将 Recycler 项目单元格飞到目标单击时查看?
- jquery - jQuery 简单标签内容
- c# - C# HostBuilder 日志记录配置。非通用记录器为空
- java - OpenCV Java 在 Mat 上执行算术运算
- excel - 如何计算工作表中图表的数量?
- unit-testing - 使用 JEST 和 axios-mock-adapter 测试基于 axios 的 API 时如何修复“无法验证第一个证书”?
- c++ - 与位域联合为位域成员提供了意想不到的价值
- c - 在子窗口中记录/打印