Visual Basic'te prosedürel programlama, kodu alt programlar (Sub, Function) aracılığıyla net bir şekilde yapılandırmayı sağlayarak tekrarı en aza indirir ve okunabilirliği artırır.
Öncelikle VB'de programlama, formlar ve modüller içindeki büyük kod bloklarıyla çalışmak etrafında gelişti. Bu, mantığın tekrarı ve hataların ayıklanmalarını zorlaştırdı. Prosedürler ve fonksiyonlara ayrılması, daha modüler bir mimariye geçiş oldu.
Kötü yapılandırılmış uygulamalar, farklı yerlerde aynı kodu içerir, bu da bakım, hata düzeltme ve yeniden kullanılabilirliği zorlaştırır.
Argümanlar ve değer döndürme ile birlikte prosedürler (Sub) ve fonksiyonlar (Function) kullanmak. Tekrarlanan mantığı ayrı yöntemlere taşımak, DRY (Kendini Tekrar Etme) ilkesine uymak iyi bir uygulamadır.
Kod örneği:
' Yeniden kullanılabilir bir fonksiyonu çağıran işleyici Sub btnCalculate_Click(sender As Object, e As EventArgs) Dim result As Double = CalculateDiscount(100, 0.2) MessageBox.Show($"İndirim: {result}") End Sub ' Yeniden kullanılabilir fonksiyon Function CalculateDiscount(total As Double, rate As Double) As Double Return total * (1 - rate) End Function
Anahtar özellikler:
Visual Basic'te sadece döndürülen değerlerin türleri farklı olduğunda aynı isimle prosedürler ve fonksiyonlar tanımlanabilir mi?
Visual Basic'te prosedür veya fonksiyon ismi, kendi alanında benzersiz olmalıdır ve sadece döndürülen değer türü ile aşırı yükleme mümkün değildir. Aşırı yükleme yalnızca parametre imzalarına göre desteklenmektedir.
Kod örneği:
' HATALI — derleme hatası Function GetValue() As Integer Return 1 End Function Function GetValue() As String Return "Test" End Function
Bir parametreyi Optional olarak tanımlarsak, varsayılan değeri belirtmek zorunlu mu?
Evet, Optional parametreleri için varsayılan değer belirtilmesi zorunludur.
Kod örneği:
Function Sum(a As Integer, Optional b As Integer = 0) As Integer Return a + b End Function
Exit Sub/Exit Function'ı sadece mevcut prosedürden değil, ana prosedürlerden çıkmak için de kullanabilir miyiz?
Hayır, Exit Sub/Exit Function sadece mevcut prosedürden çıkar. Dış prosedürler düzeyinde akışı yönetmek için akış kontrol yapıları, örneğin If/Return veya hata işleme kullanılmalıdır.
Proje indirim hesaplaması, farklı formlardaki birkaç olay işleyicisinde ayrı bir kod parçası ile uygulanmaktadır. Formül değiştiğinde, kodun tüm yerlerinde manuel olarak düzeltilmesi gerekmektedir.
Artıları:
Eksileri:
İndirim hesaplamasını ayrı bir CalculateDiscount fonksiyonuna çıkararak ihtiyaca göre çağrılarla tüm gereken yerlerde kullanmak.
Artıları:
Eksileri: