Visual Basic'te iki ana prosedür türü vardır: Sub ve Function. En önemli fark, Sub'un değer döndürmemesi, Function'ın ise her zaman belirtilen türde bir değer döndürmesidir.
Sub, sonuç döndürülmesi gerekmeyen eylemleri yerine getirmek için kullanılır (örneğin, durumu değiştirmek, ekrana yazdırmak, dosyalarla çalışmak).
Function, herhangi bir değer döndürülmesi gerektiğinde kullanılır (örneğin, hesaplamalar, mantık sonucunu almak).
Örnek:
Sub ShowMessage(ByVal message As String) MsgBox(message) End Sub Function Square(ByVal x As Integer) As Integer Square = x * x End Function ' Kullanım: ShowMessage("Merhaba!") Dim result As Integer result = Square(5) ' result = 25
VB6'da Sub ve Function arasındaki fark nedir ve Sub içinde Return ifadesini kullanmak mümkün mü?
Doğru cevap: VB6'da Return ifadesi yalnızca Function içinde kullanılır. Sub içinde, prosedürden çıkmak için Exit Sub kullanabilirsiniz, ancak bir değerle Return kullanamazsınız. Birçok kişi Return ve Exit'i karıştırır, ancak bunlar farklı görevler yerine getirir.
Sub ExampleSub() ' Return ' Hata: Sub içinde kullanılamaz Exit Sub ' Geçerli End Sub Function ExampleFunction() As Integer ExampleFunction = 5 ' veya ' Return 5 ' VB.NET'te geçerli End Function
Hikaye
Bir projede, geliştiricilerden biri değer döndürmesi gerektiğini unutarak Function yerine Sub kullandı. Sonuç olarak, hesaplanan değer hiçbir yerde saklanmadı, mantık bozuldu, testler geçmedi.
Hikaye
Büyük bir Windows Forms uygulamasında Sub, değerlerin doğrulanması için kullanıldı. Veriler, sonuca göre değişmeliydi ama Sub mantıksal bir değer döndüremezdi. Bu nedenle, doğrulama çalışmadı ve hesaplamalarda hatalar oluştu.
Hikaye
Yeni bir geliştirici, diğer programlama dillerindeki gibi Sub içinde Return ifadesini kullanmaya çalıştığı için uygulama derlenemedi. Sebebini bulmak için birkaç saat harcadık ve Sub içinde Exit Sub'un, Return'ın ise sadece Function'da olduğunu hatırladık.