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

  • bigky226

    bigky226

    11 HAZİRAN 2006
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006
  • Truc Minh

    Truc Minh

    23 Ocak 2011