验证并撤消类的构造函数

Pan*_*yay 1 c#

我在构造函数中应用验证逻辑,如果失败则返回.但是,仍然创建了实例.如何确保如果逻辑失败,ctor不应该创建实例.

class Car
{
    public readonly int maxSpeed;
    private int currSpeed = 99;
    public Car(int max)
    {
        if (max > 50)
            return;
    }
    public Car()
    {
        maxSpeed = 55;
    }
}
Run Code Online (Sandbox Code Playgroud)

Fal*_*con 9

如果验证失败,您应该在构造函数中抛出异常.

各种框架类都可以做到这一点,例如,查看System.StringSystem.DateTime构造函数.