我想在对象创建期间执行一些操作,但在所有属性初始化之后。我不能使用构造函数,因为它在对象初始化器之前执行。
var product = new Product
{
Name = "Test",
Price = 10,
...
} // Automatic product.PostInitializer() method call
public class Product
{
public required string Name { get; init; }
public required decimal Price { get; init; }
...
private void PostInitializer() { ... }
}
当然,我可以手动调用PostInitializer()方法,但我希望确保客户端代码在创建后每次都会调用此方法。
1条答案
按热度按时间bkhjykvo1#
我们已经有了一个类似的工具,它叫做...建筑师。
现在没有办法在不执行
PostInitializer
的情况下构造Product
示例。这就是构造函数的作用,你永远不应该允许一个部分初始化的对象存在。