我使用 C# 12。在 C# 12 中我可以使用主构造函数:
public class UserService(IUnitOfWork uow) : IUserService
{
}
在 C# 12 之前,我对构造函数中注入的项使用 null 检查:
public class UserService : IUserService
{
private readonly IUnitOfWork _uow;
public UserService(IUnitOfWork uow)
{
ArgumentNullException.ThrowIfNull(uow);
_uow = uow;
}
}
现在我如何在 C# 12 中进行 null 检查?
是否需要对主构造函数使用快速失败?
据我所知,如果您想切换到主构造函数,最简单的选择之一是引入字段/属性:
请注意,如果您不想使用额外的名称(如Heinzi建议)使您的类混乱,您也可以将该字段命名为与构造函数参数相同的名称(
_uow
-> ) ,这具有隐藏可变主构造函数参数的额外好处由一个不可变的字段。uow
您还可以将逻辑封装到辅助方法中。沿着这些思路: