Как уже упоминалось, оператор using
можно использовать только для типов, которые реализуют IDisposable
.Для типов, которые реализуют IDisposable
, единственный реальный недостаток, который я видел, связан с тем фактом, что using
вызывает метод Dispose()
типа неявно, поэтому, если в этом вызове возникает исключение, иногда бывает трудно отловить.
В противном случае я бы порекомендовал using
для типов, которые реализуют IDisposable
вместо использования try-catch-finally, поскольку это делает код более компактным и чистым. нашел хорошую статью MSDN , объясняющую эту и другие ловушки.