小编yan*_*hon的帖子

在调用 Dispose() 之前转换为 IDisposable

在调用Dispose()之前转换为IDisposable的原因是什么?

public interface ITransaction : IDisposable
{}
.
.
.

//in some other class:
public void EndTransaction(ITransaction transaction)
{
     if (transaction != null)
     {
          (transaction as IDisposable).Dispose(); 
          // is the following code wrong? transaction.Dispose()

          transaction = null;
     }
}
Run Code Online (Sandbox Code Playgroud)

这是 ITransaction 的具体实现之一:

public class NHibernateTransaction : ITransaction
{

     public NHibernateTransaction(NHibernate.ITransaction transaction)
     {
          this.Transaction = transaction;
     }

     protected NHibernate.ITransaction Transaction { get; private set; }

     public void Dispose()
     {
         if ( this.Transaction != null )
         {
             (this.Transaction …
Run Code Online (Sandbox Code Playgroud)

c# casting idisposable

5
推荐指数
1
解决办法
1619
查看次数

标签 统计

c# ×1

casting ×1

idisposable ×1