2009-04-03 20 views
6

VB.NET'te bir Boole işlevi üzerinde bir Exit Function hattı çalıştırırsanız false döndürür?Çıkış İşlevi yanlış mı döndürüyor?

+4

Bu yüzden VB'den hoşlanmıyorum :) C# 'da derleyici size açıklık getirmeye zorlar. – cjk

+1

Aslında derleyici size bir uyarı vermez (ve/veya görsel olarak), açıkça bir şey vermezseniz, zorunlu hale getirmenin mümkün olup olmadığından emin değilim. –

cevap

9

çıkmadan önce True olarak bu işlevi ayarlamak değil sürece. Bunu daha önce doğru olarak ayarladıysanız, doğru olarak geri döner. Ben bir boolean işlevi Foo() varsa


Daha tamamen VB.Net'te, şöyle tanımlanır:

Public Function Foo() As Boolean 
    '... 

... bu işlevin vücudu da aynı olduğundan Foo adında bir zımni değişkeni Bu durumda — Boolean işlevinin dönüş türü, ancak dönüş türü atlanırsa Object (bir dönüş türü gerektiren Option Strict kullanıyor olmalısınız). Bu zımni değişken, bu tür için varsayılan değeri kullanacak şekilde başlatıldı.

Return işlevinden Exit Function aracılığıyla ya da yalnızca sonuna ulaşarak bir değere ulaşamazsanız, bu zımni değişken yerine döndürülür. Bu nedenle, Exit FunctionBoolean işlevini, Exit Function döndürürseniz, başka değişiklikler yapmadan erken dönersiniz, çünkü bu, işlevde kullanılan ima edilen değişkendeki varsayılan değerdir. Ancak, isterseniz bu değişkeni True olarak ayarlayabilir ve daha sonra Exit Function bunun yerine True döndürmesine neden olabilir.

Günümüzde insanlar çoğu zaman ima edilen değişkeni kullanmıyorlar, ancak netlik açısından hiçbir şey yapmadan birkaç satırlık kod kaydedebileceği durumlar var.

+1

Muhtemelen bu bir açıklık meselesidir, fakat bu VB'de çalışır çünkü bu fonksiyon çıktı değişkeni yanlış ve yanlış bir geri dönüş olmadan başlatılır. – annakata

+0

döndürülmüş olan değişken. Açık olması gerekirse, eğer uzun bir işlev döndürürsek, 'Exit Function', varsayılan değeri (0) döndürür. Ayrıca, eğer 'Foo() fonksiyonumda' Long ',' Return Foo 'ise, aslında 0'ı döndürüyorum. Doğru? '' Exit Function' '' Return Foo '' ile teknik olarak değiştirebilir miyim? – MetalPhoenix

2

Eğer VB işlev adı da döndürülür değişken olabilir ihtar ile doğru

3

Olursa olsun veya olmasın (derleyici yalnızca bir null-reference warning verir), yalnızca okunabilirlik için açık bir şekilde false döndürmeniz gerekir.

+0

Sorunun asıl cevabı, yine de "Çıkış İşlevi" kullanımında _clean up_'ı kullanmak istiyorsanız hala yararlıdır. – Nyerguds

2

Çıkış ifadesi yerine bir yöntemden çıkmak için her zaman "Return True" veya "Return False" ifadesini kullanırım.

İlgili konular