C# Ekleme (extension) Metotları
25 Ağustos 2012 Etiketler: C#
C# ile "bizim olmayan sınıflara" bile metot eklememizi sağlayan ekleme metotlarına genel bir bakış yapalım
Uygulamalarımızda verilen nümerik bir tam sayının asal sayı olup olmadığını tespit etmek için yazılabilecek aşağıdaki metodu ele alalım.
public bool Asalmı(int tamSayı) {
if (tamSayı
<= 1) return false;
for (int i = 2; i <tamSayı
; i++) {
if (tamSayı
% i == 0 && i !=
tamSayı
) return false;
}
return true;
}
Doğal olarak bu metodun kullanımı da aşağıdaki şekilde olacaktır.
int sayı = 7;
bool asalmı = Asalmı(sayı);
Peki bu metodu sayı.Asalmı() şeklinde çağırmak daha zarif olmaz mıydı? İşte bu ekleme metotlar ile mümkün. Yukarıdaki metodu bir ekleme metoduna dönüştürelim şimdi:
Ve bu ekleme metodunu statik bir sınıf içine alalım (bu ekleme metotlar için bir gereklilik).public static bool Asalmı(this int
tamSayı
) {
if (tamSayı
<= 1) return false;
for (int i = 2; i <tamSayı
; i++) {
if (tamSayı
% i == 0 && i !=
tamSayı
) return false;
}
return true;
}
public static class EklemeMetotlar
{
public static bool Asalmı(this int
tamSayı
)
{
if (
tamSayı
<= 1) return false;
for (int i = 2; i <
tamSayı
; i++)
{
if (
tamSayı
% i == 0 && i !=
tamSayı
) return false;
}
return true;
}
}
Şimdi ekleme metodumuzu aşağıdaki gibi kullanabiliriz. Tabii ki (
EklemeMetotlar
) sınıfı kapsam içindeyse...Şimdi parametreli ekleme metotlara bir örnek oluşturalım. Bunun için de aşağıdaki metodu ele alalım.int sayı = 7;
bool asalmı =sayı.
Asalmı();
bool ModülerEşit(int
sayı1
, int mod, int sayı2)
{
return sayı1 % mod == sayı2 % mod;
}
Bu metodu aşağıdaki gibi kullanabiliriz.
var sonuç = ModülerEşit(6, 3, 9); //true döndürecektir.
var sonuç = ModülerEşit(7, 3, 9); //false döndürecektir.
Şimdi bu metodu ekleme metodu olarak yazalım.
public static bool
ModülerEşit
(this int
sayı1
, int mod, int sayı2)
{
return sayı1 % mod == sayı2 % mod;
}
Şimdi ekleme metodunu asağıdaki gibi kullanabiliriz:
int sayı1 = 6;
var sonuç = sayı1.ModülerEşit(3, 9);
.NET Framework 3.5 aracılığıyla tanıştığımız, daha az ve daha düzenli kodlamaya imkan sağlayan ekleme metotları faydalı ve Framework içinde LINQ ve Entity Framework gibi bir çok alanda sıklıkla kullanılmakta. Programcıları olarak aktif olarak kullanılmasa bile bilinmesi mutlak suretle gereklidir.
Yorumlar
Bu makaleye ait yorum bulunamadı.
F5 Dergi © 2019