SORU
2 AĞUSTOS 2012, PERŞEMBE


Bu iyi bir yaklaşım kullanarak içinde geri aramak için {} deyimi?

Sadece using bir blok içinde return aramak için güvenli bir iyi bir yaklaşım olduğunu bilmek istiyorum.

Eski için.

using(var scope = new TransactionScope())
{
  // my core logic
  return true; // if condition met else
  return false;
  scope.Complete();
}

En son kıvırcık kaşlı dispose() iptal olacak biliyoruz. Ama return beri yukarıdaki durumda ne olacağı verilen kapsam (AFAIK) denetim kaçmış...

  1. Benim 7 ** denir?
  2. Ve kapsamı dispose() yöntemi.

CEVAP
2 AĞUSTOS 2012, PERŞEMBE


Kullanarak bir blok try/finally sadece bir blok olduğundan son derece güvenli using blok içinde return Ara.

Örnek döndükten sonra yukarıda true kapsam bertaraf edecek ve kendi değer döndürdü. return false scope.Complete()değilaradı. Dispose ancak sonunda blok içinde bulunduğundan bağımsız olarak verilir.

Kodunuzu aslında bu daha kolay anlamak için yapar () aynıdır:

var scope = new TransactionScope())
try
{
  // my core logic
  return true; // if condition met else
  return false;
  scope.Complete();
}
finally
{
  if( scope != null) 
    ((IDisposable)scope).Dispose();
}

İşlem olacağını lütfen unutmayınaslascope.Complete() hareketi tamamlamak için almak için bir yol yok gibi işlemek.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • FullMag

    FullMag

    15 ŞUBAT 2007
  • metal571

    metal571

    30 Mayıs 2006