2009-09-03 26 views
7

Hem C# hem de VB'de using ifadesini kullandım. Ifadeleri kullanarak yuvalama ile ilgili tüm eleştirmenler katılıyorum (C# iyi yapılmış, VB çok değil gibi görünüyor)Birden fazla sistem kaynağıyla deyimi kullanma

Bu yüzden akılda tutarak, VB'mizi, içinde birden fazla sistem kaynağı olan "kullanarak" kullanarak ifadeler kullanarak geliştirmekteydim. aynı blok:

Örnek:

Using objBitmap As New Bitmap(100,100) 
    Using objGraphics as Graphics = Graphics.From(objBitmap) 
    End Using 
End Using 

böyle yazılır Could:

Using objBitmap As New Bitmap(100,100), objGraphics as Gaphics = Graphics.FromImage(objbitmap) 
End Using 

benim soru daha iyi bir yöntem nedir nedir?

Bağırsaklarım kaynaklarla ilgili/bağımlıysa, bir kullanım deyiminde birden fazla kaynak kullanmanın mantıksal olduğunu söyler.

+0

Bu bloklar sadece VB derleyicisi için aynı değil midir? –

+0

Evet, bloklar derleyiciyle aynıdır ancak – PersistenceOfVision

cevap

11

Benim ana dili C# ve çoğu kişi aynı kapsamda pek çoğu var "yığılmış" usings orada tercih:

using (X) 
using (Y) 
using (Z) 
{ 
    // ... 
} 

VB.NET olduğunu olduğunu tek kullanarak deyimi ile sorun Bu karmaşık görünüyor ve ekranın kenarına düşmesi muhtemeldir. En azından bu bakış açısıyla, VB.NET'te birden fazla kullanım daha iyi görünüyor.

Belki hat devamı olan ikinci sözdizimi birleştirirseniz, daha iyi görünecektir: yakın daha iyi okunabilirliği düşünün ne için alır

Using objBitmap As New Bitmap(100,100), _ 
     objGraphics as Graphics = Graphics.FromImage(objbitmap) 
    ' ... 
End Using 

.

+0

Kullanımına aşina olmayan birisi için çok kolay bir şekilde karışıklığa neden olabilir. Yanıtınızı devam ettirdiğinizden dolayı cevabınızı kabul ediyorum. Okunabilirliği geliştirmek için bir seçenek olarak farkındaydım, ancak kullanmaya devam etmek, herkesin tercih ettiği C# yapısı gibi görünmesini sağlamaya başlıyor. – PersistenceOfVision

+0

aslında satır süreklilikleri ile vb sürümü C# sürümünden çok daha okunabilir! en azından 'using's demetini görmüyoruz – Unicornist

0

Her ikisi de aynı, siz de, IL seviyesinde özdeş oldukları için en okunaklı olduğunu düşündüğünüz birini seçmelisiniz.

Ben şahsen C# bu sözdizimini izin vererek bu işleme biçimi gibi: Bu formdaki (ikinci örnek) VB.NET eşdeğer bulmak Ancak

using (Foo foo = new Foo()) 
using (Bar bar = new Bar()) 
{ 
    // .... 
} 

iç içe Using ifadeleri daha az okunabilir olması ilk örneğinizden. Ama bu sadece benim düşüncem. Söz konusu kodun okunabilirliğine en uygun stili seçin, çünkü çıktının aynı olduğunu düşünen en önemli şey budur.

İlgili konular