ProgramlamaVB/Classik VB Geliştirici

Visual Basic'te Sub ve Function arasındaki farkı açıklayın. Her birini ne zaman ve neden kullanmalıyız?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

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

Kandırmaca Soru.

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

Konunun karmaşıklığını bilmemekten kaynaklanan gerçek hatalarla ilgili örnekler.


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.