如何确保调用类方法

时间:2011-06-15 15:47:21

标签: c#

我有一个我想要的课程,确保完整的方法完成被调用......不知何故。例如:

public class Order
{
    public Guid TransactionId {get; private set;}
    public void Complete(Guid transactionId)
    {
        TransactionId = transactionId;
    }
}

如何确保客户端调用Complete方法?

public class Cart
{
    public void Process()
    {
        Order o = new Order();
        // Do stuff
        o.Complete(GetTransactionId());
    }
}

上面的代码看起来很弱,因为它不可能调用完整的方法:

public class Cart
{
    public void Process()
    {
        Order o = new Order();
        // Do stuff
    }
} 

听说过事件,但不太确定这是否是正确的解决方案......有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以使其实现IDisposable并始终在using语句中创建新订单。这样您就可以控制何时调用Complete方法。

答案 1 :(得分:0)

被调用的唯一方法是,如果有异常或其他一些行为导致它不能进入​​下一个语句(即灾难性故障)。

您可以通过将其置于a finally block

来防止发生异常
public void Process()
{
    try {
        Order o = new Order();
        // Do stuff
    } finally { 
        o.Complete(GetTransactionId());
    }
}

答案 2 :(得分:0)

您想强制订单的用户记住完成它,是吗?如果是用户选择何时调用Complete()那么那将很难。我想你要么在完成订单的其他事情之后自动完成完成,你必须以某种方式确保用户明白他忘记完成它。

如果没有关于订单是什么以及如何使用它的详细信息,很难知道。