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?
cevap
çı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 Function
Boolean
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.
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
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
Eğer VB işlev adı da döndürülür değişken olabilir ihtar ile doğru
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.
Sorunun asıl cevabı, yine de "Çıkış İşlevi" kullanımında _clean up_'ı kullanmak istiyorsanız hala yararlıdır. – Nyerguds
Çıkış ifadesi yerine bir yöntemden çıkmak için her zaman "Return True" veya "Return False" ifadesini kullanırım.
- 1. Bizdays işlevi yanlış değerler döndürüyor
- 2. Delphi Now() işlevi yanlış bir değer döndürüyor
- 3. getHours() yanlış değer döndürüyor
- 4. php işlevi 0 döndürüyor?
- 5. GetWeekOfYear yanlış sonuç döndürüyor?
- 6. Döngü, yanlış sırayla sözler döndürüyor
- 7. CS50 Vigenere - Çıkış Yanlış
- 8. .NET yanlış kullanıcı adı döndürüyor
- 9. Oct2Py sadece ilk çıkış argümanını döndürüyor
- 10. NSURLSessionDataTask yanlış bir sonuç döndürüyor
- 11. Bölüm neden yanlış kalanı döndürüyor?
- 12. UICollectionViewCell systemLayoutSizeFittingSize, yanlış genişlik döndürüyor
- 13. Hızlı giriş çıkış işlevi
- 14. Scapy işlevsiz çıkış işlevi gönder
- 15. CImg aktarım işlevi yanlış genişlik verir
- 16. Neden getDay yanlış değerler döndürüyor? (javascript)
- 17. Spring MVC'deki Ertelenmiş Sonuç yanlış yanıtı döndürüyor
- 18. Opera - driver.WindowHandles yanlış bir sayı döndürüyor
- 19. Neden NSCalendar'ın dateFromComponents yanlış bir tarih döndürüyor?
- 20. iPhone - Setting.bundle öğesinin okunması yanlış değerler döndürüyor
- 21. Neden getPrototypeOf() yanlış yapıcıyı JavaScript'e döndürüyor?
- 22. Neden Math.Cos yanlış değeri döndürüyor? Benim kod
- 23. Python's hasattr bazen yanlış bir sonuç döndürüyor
- 24. Solr, çocuk belgelerini filtrelerken yanlış sonuçlar döndürüyor
- 25. VBScript işlevi bir sözlük döndürüyor mu?
- 26. Bundle.IncludeDirectory MVC5 içinde çıkış olanağı yanlış yolları
- 27. Neden javascript üreteci işlevi döndürme işlevi .next() parametrelerini döndürüyor?
- 28. Dize işlevi boş dizgeyi döndürüyor C++
- 29. Powershell işlevi, örneklenen nesneyi döndürüyor ... türden?
- 30. NSDateFormatter - 1 gün yanlış mı?
Bu yüzden VB'den hoşlanmıyorum :) C# 'da derleyici size açıklık getirmeye zorlar. – cjk
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. –